Русский_Проект:Функции API

Добро пожаловать на страницы руководства по функциям API !

Данное руководство является попыткой объяснить,как пользоваться различными функциями при написании программ на Visual Basic. Если вы только приступаете к программированию с помощью API, вы должны сначала прочитать Функции API:Введение . Вы можете также обратиться к определениям терминов,если Вы не понимаете некоторые термины, используемые в этом руководстве.

Выбирайте способ работы с функциями API:

  • Список функций по алфавиту
  • Список функций с обратным вызовом по алфавиту
  • Другая информация по функциям
  • Список функций по категориям
  • Список структур по алфавиту

Список функций по алфавиту

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

    A
  1. AngleArc
  2. Arc
    B
  3. Beep
  4. BitBlt
  5. BringWindowToTop
    C
  6. CharLower
  7. CharToOem
  8. CharUpper
  9. ChooseColor
  10. CommDlgExtendedError
  11. CopyFile
  12. CopyRect
  13. CreateDirectory
  14. CreateDirectoryEx
  15. CreateEllipticRgn
  16. CreateEllipticRgnIndirect
  17. CreateHatchBrush
  18. CreatePen
  19. CreatePenIndirect
  20. CreatePolygonRgn
  21. CreateRectRgn
  22. CreateRectRgnIndirect
  23. CreateRoundRectRgn
  24. CreateSolidBrush
    D
  25. DeleteFile
  26. DeleteObject
  27. DrawIcon
    E
  28. Ellipse
  29. EnableWindow
  30. EnumWindows
  31. EqualRect
  32. EqualRgn
  33. ExitWindowsEx
  34. ExtFloodFill
  35. ExtractIconEx
    F
  36. FillRect
  37. FillRgn
  38. FindWindow
  39. FlashWindow
  40. FrameRect
  41. FrameRgn
    G
  42. GetACP
  43. GetActiveWindow
  44. GetArcDirection
  45. GetClassName
  46. GetClipCursor
  47. GetComputerName
  48. GetCursor
  49. GetCursorPos
  50. GetDC
  51. GetDesktopWindow
  52. GetDiskFreeSpace
  53. GetDoubleClickTime
  54. GetDriveType
  55. GetFileAttributes
  56. GetFileSize
  57. GetFullPathName
  58. GetKeyboardState
  59. GetKeyState
  60. GetLastError
  61. GetLocalTime
  62. GetLogicalDriveStrings
  63. GetOEMCP
  64. GetOpenFileName
  65. GetParent
  66. GetPixel
  67. GetPrivateProfileString
  68. GetRgnBox
  69. GetShortPathName
  70. GetSystemDirectory
  71. GetSystemMetrics
  72. GetSystemTime
  73. GetTempPath
  74. GetTickCount
  75. GetUserName
  76. GetVersionEx
  77. GetVolumeInformation
  78. GetWindowRect
  79. GetWindowsDirectory
  80. GetWindowText
  81. GetWindowTextLength
    H
    I
  82. InflateRect
  83. IntersectRect
  84. InvertRect
  85. InvertRgn
  86. IsCharLower
  87. IsCharUpper
  88. IsIconic
  89. IsRectEmpty
  90. IsWindowEnabled
  91. IsZoomed
    J
    K
  92. keybd_event
    L
  93. LineTo
  94. LoadCursor
  95. LoadCursorFromFile
    M
  96. mciSendString
  97. MessageBeep
  98. MoveFile
  99. MoveToEx
    N
    O
  100. OemToChar
  101. OffsetRect
    P
  102. PtInRect
  103. PtInRegion
    Q
    R
  104. Rectangle
  105. RectInRegion
  106. RegCloseKey
  107. RegCreateKeyEx
  108. RegOpenKeyEx
  109. ReleaseCapture
  110. ReleaseDC
  111. RemoveDirectory
  112. RoundRect
    S
  113. SelectObject
  114. SendMessage
  115. SetActiveWindow
  116. SetArcDirection
  117. SetComputerName
  118. SetCursor
  119. SetCursorPos
  120. SetDoubleClickTime
  121. SetFileAttributes
  122. SetForegroundWindow
  123. SetPixel
  124. SetRect
  125. SetSystemTime
  126. SetVolumeLabel
  127. SetWindowPos
  128. SetWindowText
  129. Shell_NotifyIcon
  130. SHEmptyRecycleBin
  131. SHFileOperation
  132. ShowCursor
  133. ShowWindow
  134. Sleep
  135. sndPlaySound
  136. StretchBlt
  137. SwapMouseButton
    T
  138. TextOut
    U
    V
    W
  139. WindowFromPoint
  140. WritePrivateProfileString
    X
    Y
    Z

В начало.

Список функций с обратным вызовом по алфавиту
  • BrowseCallbackProc
  • CCHookProc
  • CFHookProc
  • EnumChildProc
  • EnumFontFamExProc
  • EnumFontFamProc
  • EnumThreadWndProc
  • EnumWindowsProc
  • PropEnumProcEx NEW
  • SoundSentryProc
  • WindowProc

Другая информация по функциям
  • CSIDLs
  • Коды ошибок
  • Extended Window Styles
  • Manufacturer IDs
  • Product IDs
  • Коды виртуальных клавиш
  • Window Styles

В начало.

последнее обновление: Май 12, 2000
© 1999-2000 Александр Климов
Русский_Проект.


Функции Windows API:Введение

Функции API:Введение

Добро пожаловать на страницы руководства по функциям API. Это руководство имеет дело с API для всех 32-разрядных версий Windows: Windows 95/98, Windows NT.

  • Введение в Windows API
  • Введение в руководство по функциям API

Введение в Windows API

Что такое "API"?

API сокращенно Application Programming Interface(интерфейс прикладного программирования). Проще говоря, API - набор функций, которые операционная система предоставляет программисту. API обеспечивает относительно простой путь для программистов для использования полных функциональных возможностей аппаратных средств или операционной системы .

Понятие о Windows API

Windows API могут вызываться из Visual Basic для выполнения задач,для которых недостаточно стандартного программного кода Visual Basic.Например,стандартые средства Visual Basic не позволяют перезагрузить компьютер.Однако перезагрузку можно выполнить через обращение к соответствующей функции Window API.

32-разрядные версии Windows, или 95/98 или NT, обычно используют один и тот же набор функций API, хотя имеются некоторые различия между платформами. 32-разрядный API содержит многочисленные расширения и поддержки к устаревшему 16-разрядному API, используемому в Windows 3.x. Старые функции поддерживаются по причинам совместимости. Однако, 32-разрядные приложения должны использовать исключительно 32-разрядные функции. Это не проблема, так как 16-разрядные функции обычно заменялись подобными функциями.

Как организованы функции Windows API ?

Почти все функции, которые составляют Windows API - внутри DLL (Dynamic Link Library) . Эти dll-файлы находятся в системной папке Windows.Существует свыше 1000 функций API,которые условно делятся на на четыре основные категории.

  • Работа с приложениями-запуск и закрытие приложений,обработка команд меню,перемещения и изменения размера окон.
  • Графика-создание изображений.
  • Системная информация-определение текущего диска,объем памяти,имя текущего пользователя и т.д.
  • Работа с реестром-манипуляции с реестром Windows

Наверх.
В начало.

Введение в руководство по функциям API

Руководство по функциям API -это коллекция некоторых функций. Я не претендую на полное описание всех функций(их слишком много),но коллекция будет постоянно пополнятся.

Как организовано данное руководство?

Основная страничка содержит список функций,входящих в руководство,в алфавитном порядке.Каждая функция имеет свою страничку с описанием параметров функции,ее использовании и примером.

Наверх.
В начало.

Русский_Проект


Функции API:Определения терминов

Определения терминов

Declare
Оператор,используемый для вызова функции API. Declare сообщает Visual Basic имя,местоположение DLL,а также требуемые параметры.
Классы окна
Определяет общие атрибуты к группе окон. Окна, которые созданы как члены некоторого класса окна, наследует много свойств того класса.
Контекст устройства
В Windows поверхность,на которой вы рисуете,называется контекстом устройства.Доступ к нему обеспечивает дескриптор hDC.Получив дескриптор контекста устройства,можно вызывать API-функции для вывода графики(точки,линии,окружности,текст).Смотри также : Дескриптор, Указатель.
Логическое
Когда используется, чтобы описать графический объект (типа шрифта или кисти), это означает, что описанный объект является "идеальным" объектом. Информация относительно логического объекта используется системой, чтобы создать физический объект, который не может точно соответствовать логическому. Однако, только физические объекты могут фактически использоваться.
Общий диалог
Одно из диалоговых окон, встроенных в Windows API,предназначенный для выбора пользователем различных операций. Общие диалоговые окна включают Открытие файла, Сохранение файла, Выбор цвета, Выбор шрифта, Печать, Установку печати, Найти текст, и Найти и заменить текст.
Дескриптор
Уникальное целое число, которое присваивается объекту под Windows. Дескрипторы могут идентифицировать большинство видов объекта, включая ключи системного реестра, файлы, блоки памяти, окна. Смотри также: Контекст устройства, Указатель.
Перо
Объект,используемый для вывода линий и кривых. Перо определяет стиль,размер и форму линий и кривых.Доступ к перу обычно доступен через дескриптор.
Сообщение
Тип команды, посланной объекту. Физически, сообщение идентифицировано 32-разрядным целым числом. Большинство сообщений имеет два параметра, связанные с ними. Большинство объектов непрерывно ожидают новые сообщения и реагируют на них.Смотри также Функции Windows API:Сообщения
Указатель
A number that identifies a specific memory address. Pointers differ from handles to memory blocks because whereas the handle refers to a block of memory whose exact physical location may vary, the pointer identifies the specific physical location of where it starts. Visual Basic implicitly passes strings, data structures, and all ByRef variables by passing a pointer to the variable's memory address to the function. Смотри также: Контекст устройства, Дескриптор.
Устройство
Объект, который исполняет операции ввода или вывода (или оба). Устройства используются, чтобы связаться с пользователем и включают такие объекты как клавиатура, мышь, и принтеры. Большинство окон являются устройствами..
Клиентская область
Область окна,определяющая ее основу.В эту область не входят заголовок,меню(если есть),панель управления,строка состояния,бордюр окна.
Функция с обратным вызовом
Функция, код которых пишете вы, но вызывает их Windows. В Visual Basic, все функции с обратным вызовом должны быть Public и находится в стандартном модуле.
hookfunction
Особый вид функции обратного вызова. Hook functions are used to process messages associated with an object such as a window or a dialog box. In general, hook functions are called to respond to some sort of message.
В начало.

последнее обновление:Май 27, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:Использование в Visual Basic

Использование функций API в Visual Basic

Функции API,вызываемые в Visual Basic должны быть предварительно объявлены. При объявлении указывается имя DLL и функции,а также информация о количестве и типе аргументов.

Объявление функций API и DLL

Процедуры DLL объявляются командой Declare в секции General Declarations модуля формы или стандартного модуля:
Declare Function имя Lib "библиотека" [Alias "псевдоним"] [([[ByVal ] _
переменная [As тип] [,ByVal,] переменная [As тип]]...])] As тип

Процедуры DLL,находящиеся в стандартных модулях,по умолчанию являются открытыми и могут вызываться из любой точки приложения.Процедуры,объявленные в модуле формы,являются закрытыми и перед их объявлением должно стоять ключевое слово Private.
Примечание.
Начиная с версии Visual Basic 5,в именах процедур учитывается регистр символов.

Библиотеки

Секция Lib сообщает,где следует искать файл DLL,содержащий функцию.При ссылке на основные библиотеки Windows(user32.dll,kernel32.dll,gdi.dll) расширение включать не обязательно.
Если путь к файлу не указан,то начинается просмотр каталогов в следующей последовательности

  1. Каталог,содержащий EXE-файл программы
  2. Текущий каталог
  3. Системный каталог Windows
  4. Каталог Windows
  5. Переменная окружения Path

Стандартные библиотеки DLL
Библиотека | Описание
advapi.dll | Защита NT,реестр и другие продвинутые сервисы.
comdlg.dll | Стандартные диалоговые окна.
gdi.dll | Интерфейс графических устройств.
kernel32.dll | Память,диски,процессы,ресурсы.
mpr.dll | Сети.
netapi32.dll | Библиотека сетевого API.
shell32.dll | Оболочка Windows,drag-and-drop,выборка значков.
user32.dll | Пользовательский интерфейс-окна,меню,строки,сообщения.
version.dll | Контроль версий.
winmm.dll | Мультимедиа,звук,джойстики,таймеры.
winspoll.dll | Диспетчер печати.

Передача аргументов

Большинство процедур DLL задокументировано с использованием нотации языка программирования C и C++.Для успешного преобразования функции API в комманду Declare необходимо разбираться в механизме передачи аргументов.Обычно аргументы передаются по значению.В этом случае перед именем аргумента ставится ключевое слово ByVal.Если аргумент передается по ссылке,то ставится ByRef.

Передача аргументов по значению

Передача аргументов по ссылке

Наверх.
В начало.

последнее обновление: Июль 03, 2000


Функции Windows API:AngleArc

Функция AngleArc

Declare Function AngleArc Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal dwRadius As Long, ByVal eStartAngle As Single, ByVal eSweepAngle As Single) As Long

Платформа

  • Windows 95/98: Не поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE: Не поддерживается

AngleArc рисует дугу на устройстве используя текущее для устройства перо. Круг, которым рисуется дуга,определена ее центром и радиусом. Начало и конечные точки дуги определены угловыми мерами в градусах, и рисуются против часовой стрелки от линии, параллельной положительной оси X. Дуга непосредственно оттянута или по часовой стрелке или против часовой стрелки соединненых точек, в зависимости от параметров настройки устройства. AngleArc также рисует линию, соединяющую текущий точку устройства к началу дуги.

Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки),в успешном случае функция возвращает значение,отличное от нуля.

Параметры

hdc
Дескриптор контекста устройства для рисования дуги.
x
Координата x центра круга.
y
Координата y центра круга.
dwRadius
Радиус круга.
eStartAngle
Угол (в градусах) для идентификации отправной точки дуги.
eSweepAngle
Угол (в градусах) для идентификации конечной точки дуги.

Пример

' Рисуем дугу, сформированную верхней половиной круга (от 0 до 180
' градусов против часовой стрелки). Круг центрирован в (100, 150) и имеет радиус
' 50. Дуга оттянута, используя сплошное черное перо.
Dim hpen As Long  ' дескриптор черного пера
Dim holdpen As Long   ' Дескриптор предварительно выбранного пера Form1
Dim retval As Long   ' возвращаемое значение

' Get the solid black stock pen and select it for use in Form1.
hpen = GetStockObject(BLACK_PEN)  ' get the pen's handle
holdpen = SelectObject(Form1.hDC, hpen)  ' select the pen

' Make sure arcs are drawn going counterclockwise
retval = SetArcDirection(Form1.hDC, AD_COUNTERCLOCKWISE)
' рисуем дугу
retval = AngleArc(Form1.hDC, 100, 150, 50, 0, 180)

' Select Form1's previous pen to restore the "defaults".
retval = SelectObject(Form1.hDC, holdpen)  ' select the old pen

Схожие функции
Arc, ArcTo, Ellipse, GetArcDirection, SetArcDirection
Категория
Линии и кривые

В начало.

последнее обновление: Февраль 22, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:Arc

Функция Arc

Declare Function Arc Lib "gdi32.dll" (ByVal hdc As Long, ByVal nLeftRect As Long, ByVal nTopRect As Long, ByVal nRightRect As Long, ByVal nBottomRect As Long, ByVal nXStartArc As Long, ByVal nYStartArc As Long, ByVal nXEndArc As Long, ByVal nYEndArc As Long) As Long

Платформа

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000: Поддерживается
  • Windows CE:Не поддерживается

Arc рисует часть дуги на устройстве используя текущее перо устройства. Windows 95/98: Дуга всегда рисуется против часовой стрелки от точки начала до точки конца. Windows NT/2000: Направление дуги зависит от текущей установки устройства.

Возвращаемое значение

В случае ошибки при при попытке рисовать дугу, функция возвращает 0 (Win NT/2000:: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение, отличное от нуля.

Параметры

hdc
Дескриптор контекста устройства, на котором рисуется дуга.
nLeftRect
Координата x левой верхней точки прямоугольника, ограничивающего эллипс.
nTopRect
Координата y левой верхней точки прямоугольника, ограничивающего эллипс.
nRightRect
Координата x правой нижней точки прямоугольника, ограничивающего эллипс.
nBottomRect
Координата y правой нижней точки прямоугольника, ограничивающего эллипс.
nXStartArc
Координата x радиальной точки, которая определяет отправную точку дуги.
nYStartArc
Координата y радиальной точки, которая определяет отправную точку дуги.
nXEndArc
Координата x радиальной точки, который определяет точку окончания дуги.
nYEndArc
Координата y радиальной точки, который определяет точку окончания дуги.

Пример

' Рисуем дугу, которая формирует верхнюю половину эллипса. Эллипс
' находится в координатах (100, 100), имеет ширину 200, и имеет высоту 100. Дуга оттянута
' на окне Form1 с использованием черного твердого пера .
'Вставьте код в Form_Paint
Dim hpen As Long  ' дескриптор для черного твердого пера
Dim holdpen As Long  ' дескриптор для пера,используемого Form1
Dim retval As Long

hpen = GetStockObject(BLACK_PEN)  ' получаем дескриптор для черного твердого пера
holdpen = SelectObject(Form1.hDC, hpen)  ' и устанавливаем его для Form1.

' Эллипс ограничен прямоугольником  (0,50) - (200,150).
retval = Arc(Form1.hdc, 0, 50, 200, 150, 200, 100, 0, 100)
' Восстанавливаем прежнее перо для Form1.
retval = SelectObject(Form1.hDC, holdpen)

Схожие функции
AngleArc, ArcTo, Ellipse, GetArcDirection, SetArcDirection
Категория:
Линии и кривые

В начало.

последнее обновление:Февраль 22, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:Beep

Функция Beep

Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Не поддерживается.

Beep воспроизводит звук.В зависимости от платформы воспроизводит звук по разному. Windows 95/98: Функция всегда воспроизводит системный (SystemDefault) звук. Windows NT/2000: Функция воспроизводит тоновый звук через внутренний динамик с различной частотой.

Возвращаемое значение

В случае ошибки возвращается 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение,отличное от нуля.

Параметры

dwFreq
Windows NT/2000: Частота в герцах (Hz). Windows 95/98: Игнорируется.
dwDuration
Windows NT/2000: Продолжительность звука в миллисекундах. Windows 95/98: Игнорируется.

Пример

' Воспроизводим сигнал частотой 800 Hz в течении 2 секунд.
' только для Windows NT/2000; пользователи Windows 95/98
'услышает звук по умолчанию

Dim retval As Long  ' возвращаемое значение

retval = Beep(800, 2000)

Схожие функции
MessageBeep
Категория Ошибки

В начало.

последнее обновление: Февраль 28, 2000


Функции Windows API:BitBlt

Функция BitBlt

Declare Function BitBlt Lib "gdi32.dll" (ByVal hdcDest As Long, ByVal nXDest As Long, ByVal nYDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hdcSrc As Long, ByVal nXSrc As Long, ByVal nYSrc As Long, ByVal dwRop As Long) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

BitBlt используется для выполнения операции копирования отдельных битов из области источника изображения в область-получатель.Функция позволяет передавать прямоугольную область из контекста устройства в контекст другого устройства. Размеры переданного прямоугольника совершенно сохраняются.

Возвращаемое значение
В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.

Параметры

hdcDest
Дескриптор контекста устройства устройства, которое получает переданный блок изображения.
nXDest
Координата x точки верхнего левого угла блока изображения(получатель).
nYDest
Координата y точки верхнего левого угла блока изображения(получатель).
nWidth
Ширина в пикселах блока изображения.
nHeight
Высота в пикселах блока изображения.
hdcSrc
Дескриптор к контексту устройства устройства, которое содержит блок изображения для копирования.
nXSrc
Координата x точки верхнего левого угла блока изображения(источник).
nYSrc
Координата y точки верхнего левого угла блока изображения(источник).
dwRop
Один из следующих флажков, идентифицирующих растровую операцию для передачи блока изображения. Каждая растровая операция использует RGB-значение цвета исходного исходного пиксела, чтобы определить новый цвет пиксела.
BLACKNESS
Заполняет область-получатель черным цветом.
CAPTUREBLT
Windows 98, 2000: Include any windows layered on top of the window being used in the resulting image.
DSTINVERT
Инвертирует область-получатель.
MERGECOPY
Изображение определяется результатом выполнения операции побитового AND над копируемым изображением или шаблоном.
MERGEPAINT
Изображение определяется результатом выполнения операции побитового OR над инвертируемым копируемым и областью-получателем.
NOMIRRORBITMAP
Windows 98, 2000: Предотвращает точечный рисунок от зеркального отражения.
NOTSRCCOPY
Изображение определяется инвертируемым исходным изображением.
NOTSRCERASE
Комбинирование цвета и прямоугольников источника и получателя, использующих поразрядный оператор OR с последующим инвертированием результирующего цвета.
PATCOPY
Шаблон копируется в область получатель.
PATINVERT
Комбинирование цвета указанного шаблона с цветами прямоугольника адресата, используя поразрядный оператор XOR.
PATPAINT
Комбинирование цвета указанного образца с цветами перевернутого исходного прямоугольника, используя поразрядный оператор OR. Комбинируйте результат той операции с цветами прямоугольника адресата, используя поразрядный оператор OR.
SRCAND
Комбинирование цвета и прямоугольников источника иадресата, использующих поразрядный оператор AND.
SRCCOPY
Копирование исходного прямоугольника непосредственно в прямоугольник адресата без изменений.
SRCERASE
Комбинирование перевернутых цветов прямоугольника адресата с цветами источника , используя поразрядный оператор AND.
SRCINVERT
Комбинирование цвета и прямоугольников источника и адресата, использующих поразрядный оператор XOR.
SRCPAINT
Комбинирование цвета и прямоугольников источника и адресата, использующих поразрядный оператор OR.
WHITENESS
Заполняет область-получатель белым цветом.

Константы

Const BLACKNESS = &H42
' Const CAPTUREBLT = ???
Const DSTINVERT = &H550009
Const MERGECOPY = &HC000CA
Const MERGEPAINT = &HBB0226
' Const NOMIRRORBITMAP = ???
Const NOTSRCCOPY = &H330008
Const NOTSRCERASE = &H1100A6
Const PATCOPY = &HF00021
Const PATINVERT = &H5A0049
Const PATPAINT = &HFB0A09
Const SRCAND = &H8800C6
Const SRCCOPY = &HCC0020
Const SRCERASE = &H440328
Const SRCINVERT = &H660046
Const SRCPAINT = &HEE0086
Const WHITENESS = &HFF0062

Пример

' Копируем изображение прямоугольника из формы Form1 в форму Form2
' используя SRCCOPY.  Прямоугольник имеет ширину 100 и высоту
' 50.  Верхний левый угол источника- (350, 250); копия расположится в координатах
'  (0,0) формы Form2.
Dim retval As Long  ' возвращаемое значение

' Переместим изображение точно как описано выше.
retval = BitBlt(Form2.hDC, 0, 0, 100, 50, Form1.hDC, 350, 250, SRCCOPY)

Схожие функции
StretchBlt
Категория
Графика

В начало.

последнее обновление: Март 29, 2000


Функции Windows API:BringWindowToTop

Функция BringWindowToTop

Declare Function BringWindowToTop Lib "user32.dll" (ByVal hwnd As Long) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

BringWindowToTop устанавливает указанное окно поверх других . Эта функция имеет тот же самый эффект как использование SetWindowPos для размещения окна поверх других.

Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.
Параметры

hwnd
Дескриптор окна.

Пример

' Установим окно Form2 поверх окна Form1.
Dim retval As Long  ' возвращаемое значение

' Очевидно, это будет работать, если другие окна - уже поверх Form2.
retval = BringWindowToTop(Form2.hWnd)

Схожие функции
SetWindowPos
Категория:
Окна

В начало.

последнее обновление: Май 08, 2000


Функции Windows API:CharLower

Фунция CharLower

Declare Function CharLower Lib "user32.dll" Alias "CharLowerA" (ByVal lpsz As String) As String

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

CharLower конвертирует все символы из верхнего регистра в нижний.

Возвращаемое значение
Функция возвращает строку со всеми буквами верхнего регистра,конвертируемые в нижний регистр.

Параметры

lpsz
Строка для конвертации в нижний регистр.

Пример

' конвертируем строку "Доброе утро, Россия!" в нижний регистр.

Dim target As String   ' нужная строчка

target = CharLower("Доброе утро, Россия!")
Debug.Print target

Схожие функции
CharUpper
Категория
Строки

В начало

последнее обновление: Февраль 22, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:CharToOem

Фунция CharToOem

Declare Function CharToOem Lib "user32" Alias "CharToOemA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.

CharToOem конвертирует текст из win-кодировки в dos-кодировку.

Возвращаемое значение
Функция всегда возвращает ненулевое значение

Параметры

lpszSrc
Строка для перекодировки.
lpszDst
Перекодированая строка в буфере. Если функция CharToOem используется как функция ANSI, строка может быть переведена на месте, устанавливая параметр lpszDst в тот же адрес,что и параметр lpszSrc .

Пример

' конвертируем строку "Русский_Проект!" в dos-кодировку.
Dim sourcestring As String   ' нужная строка
Dim deststring As String  ' получаемая строка
Dim code As Long

sourcestring = "Русский Проект"  'строка для перекодировки
deststring = Space$(Len(sourcestring))'получаем перекодированную строку
code = CharToOem(sourcestring, deststring)
Debug.Print deststring

Схожие функции
OemToChar
Категория
Строки

В начало

последнее обновление:Май 15, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:CharUpper

Функция CharUpper

Declare Function CharUpper Lib "user32.dll" Alias "CharUpperA" (ByVal lpsz As String) As String

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows NT 3.1 или выше.

CharUpper конвертирует все символы из нижнего регистра в верхний.

Возвращаемое значение

Функция возвращает строку со всеми буквами нижнего регистра,конвертируемые в верхний регистр.

Параметры

lpsz
Строка для конвертации в верхний регистр.

Пример

 'конвертируем строку "Доброе утро, страна!" в верхний регистр.

Dim target As String     ' нужная строчка

target = CharUpper("Доброе утро, страна!")
Debug.Print target

Схожие функции
CharLower
Категория
Строки

В начало

последнее обновление: Февраль 22, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:ChooseColor

Функция ChooseColor

Declare Function ChooseColor Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 2.0 или выше.

ChooseColor открывает стандартное окно Общего диалога для выбора цвета. Вся необходимая информация для создания диалогового окна,хранится в структурной базе данных в виде pChoosecolor.

Возвращаемое значение

В случае возникновения ошибки или при нажатии пользователем кнопки Отмена,функция возвращает 0 (пользуйтесь CommDlgExtendedError для получения кода ошибки). В успешном случае функция возвращает значение, отличное от нуля.

Параметры

pChoosecolor
Вся необходимая информация для создания диалогового окна.

Пример

' Показываем общее диалоговое окно
'для выбора цвета.  Задний фон формы Form1
' будет установлен в соответствии с выбранным цветом.

'код для General Declarations
Dim CustomColors() As Byte
'код для кнопки Command1
Dim cc As CHOOSECOLOR ' структура для передачи данных
Dim Custcolor(16) As Long  ' содержит список 16 цветов
Dim lReturn As Long ' возвращаемое значение
cc.lStructSize = Len(cc)
    cc.hwndOwner = frmMain.hWnd
    cc.hInstance = App.hInstance
    cc.lpCustColors = StrConv(CustomColors, vbUnicode)
    cc.flags = 0

    lReturn = CHOOSECOLOR(cc)
    If lReturn <> 0 Then
' Открываем диалоговое окно.
' Если пользователь выбрал цвет, устанавливаем цвет фона формы.
        frmMain.BackColor = Str$(cc.rgbResult)
        CustomColors = StrConv(cc.lpCustColors, vbFromUnicode)
    Else
        Exit Sub
    End If

Категория
Общий диалог

В начало.

последнее обновление: Март 01, 2000


Функции Windows API:CommDlgExtendedError

Функция CommDlgExtendedError

Declare Function CommDlgExtendedError Lib "comdlg32.dll" () As Long

Платформа

Win 95/98, Win NT

CommDlgExtendedError возвращает код ошибки от последней функции общего диалогового окна. Эта функция не возвращает коды ошибки для любой другой функции API; для этого существует GetLastError. Значение возвращения функции неопределено, если последний запрос функции общего диалога был успешен. В случае ошибки, значения возвращения - один из следующих флагов ошибки общего диалога:

CDERR_DIALOGFAILURE = &HFFFF
Функция не может открыть окно общего диалогового окна.
CDERR_FINDRESFAILURE = &H6
Функция не сумела найти желательный ресурс.
CDERR_GENERALCODES = &H0
Ошибка свойства общего диалогового окна.
CDERR_INITIALIZATION = &H2
Функция потерпела неудачу в течение инициализации (вероятно недостато памяти).
CDERR_LOADRESFAILURE = &H7
Функция не сумела загрузить желательный ресурс.
CDERR_LOADSTRFAILURE = &H5
Функция не сумела загрузить желательную строку.
CDERR_LOCKRESFAILURE = &H8
Функция не сумела блокировать желательный ресурс.
CDERR_MEMALLOCFAILURE = &H9
Функция не сумела распределить достаточную память.
CDERR_MEMLOCKFAILURE = &HA
Функция не сумела блокировать память.
CDERR_NOHINSTANCE = &H4
Функция не обеспечена описателем экземпляра (если требовалось).
CDERR_NOHOOK = &HB
Функция не обеспечена имеющим силу дескриптором функции обработчика прерываний (если требовалось).
CDERR_NOTEMPLATE = &H3
Функция не обеспечена шаблоном (если требовалось).
CDERR_REGISTERMSGFAIL = &HC
Функция не сумела успешно зарегистрировать сообщение окна.
CDERR_STRUCTSIZE = &H1
Функция обеспечена неверным размером структуры.
CFERR_CHOOSEFONTCODES = &H2000
Ошибка общего диалогового окна Выбор шрифта
CFERR_MAXLESSTHANMIN = &H2002
Функция обеспечена максимальным значением размера шрифта меньшим,чем возможный минимальный размер шрифта.
CFERR_NOFONTS = &H2001
Функция не смогла найти никаких шрифтов.
FNERR_BUFFERTOOSMALL = &H3003
Функция обеспечена слишком маленьким буфером имен файла.
FNERR_FILENAMECODES = &H3000
Ошибка общего диалогового окна Открытие файла или Сохранение файла.
FNERR_INVALIDFILENAME = &H3002
Функция обеспечена или получила неверное имя файла.
FNERR_SUBCLASSFAILURE = &H3001
Функция имела недостаточную память, чтобы классифицировать список.
FRERR_BUFFERLENGTHZERO = &H4001
Функция обеспечена недействительным буфером.
FRERR_FINDREPLACECODES = &H4000
Ошибка общего диалогового окна Поиск или Замена.
PDERR_CREATEICFAILURE = &H100A
Функция не сумела создать информационный контекст.
PDERR_DEFAULTDIFFERENT = &H100C
Функция говорит, что параметры, обеспеченные описанием заданным по умолчанию принтером, и фактические параметры настройки заданного по умолчанию принтера различны.
PDERR_DNDMMISMATCH = &H1009
Данные в этих двух структурах данных описывают различные принтеры (то есть,содержат) противоречивую информацию.
PDERR_GETDEVMODEFAIL = &H1005
Драйвер принтера не сумел инициализировать DEVMODE структуру.
PDERR_INITFAILURE = &H1006
Функция потерпела неудачу в течение инициализации.
PDERR_LOADDRVFAILURE = &H1004
Функция не сумела загрузить желательный драйвер устройства.
PDERR_NODEFAULTPRN = &H1008
Функция не смогла найти заданный по умолчанию принтер.
PDERR_NODEVICES = &H1007
Функция не смогла найти никаких принтеров.
PDERR_PARSEFAILURE = &H1002
Функция не сумела проанализировать связанные принтером строки в WIN.INI.
PDERR_PRINTERCODES = &H1000
Ошибка общего диалогового окна Печать
PDERR_PRINTERNOTFOUND = &H100B
Функция не смогла найти информацию в WIN.INI относительно требуемого принтера.
PDERR_RETDEFFAILURE = &H1003
Описатели к структурам данных, были отличные от нуля даже при том, что функцию спрашивали возвратить информацию относительно заданного по умолчанию принтера.
PDERR_SETUPFAILURE = &H1001
Функция не сумела загрузить желательные ресурсы.

Пример

' Открываем диалоговое окно Открытие файла и даем ему недостаточный размер буфера
' затем показываем код ошибки.
Dim filebox As OPENFILENAME  ' структура для создания общего диалогового окна
Dim fname As String  ' имя файла
Dim retval As Long  ' возвращаемое значение
Dim errcode As long  ' код ошибки

' настраиваем вид окна
filebox.lStructSize = Len(filebox)  ' размер структуры
filebox.hwndOwner = Form1.hWnd  ' дескриптор формы,вызываемой функцией.
filebox.lpstrTitle = "Пример с API"  ' текст заголовка в диалоговом окне
' определяем тип файлов
filebox.lpstrFilter = "Файлы txt" & vbNullChar & "*.txt" & vbNullChar & "Все файлы" & vbNullChar & "*.*" & vbNullChar & vbNullChar
filebox.lpstrFile = ""  ' ОШИБКА: пустой буфер!
filebox.nMaxFile = 0  ' длина файла и буфер для полного имени
filebox.lpstrFileTitle = Space(255)  ' Инициализируем буфер, который получает имя файла файла
filebox.nMaxFileTitle = 255  ' длина буфера для имени файла
' показываем только существующие,скрытые и только для чтения файлы
filebox.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY

' открываем общее диалоговое окно
retval = GetOpenFileName(filebox)
If retval = 0 Then  ' произошла ошибка или нажата кнопка Отмена
  errcode = CommDlgExtendedError()  ' получаем код ошибки для GetOpenFileName
  If errcode = FNERR_BUFFERTOOSMALL Then
    Debug.Print "Буфер слишком маленький, чтобы содержать имя файла."
  If errcode = FNERR_INVALIDFILENAME Then
    Debug.Print "Недействительное имя файла."
End If
  End If
End If

Схожие функции: GetLastError
Категория
Общий диалог

В начало.

последнее обновление: Январь 13, 2000


Функции Windows API:CopyFile

Функция CopyFile

Declare Function CopyFile Lib "kernel32.dll" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long

Платформа: Win 95/98, Win NT

CopyFile копирует файл из одного места в другой(операция подобная копированию файлов в Проводнике). В зависимости от значения bFailIfExists, функция либо перепишет файл,если он уже существует,либо возникнет ошибка. В успешном случае функция возвращает 1 , в случае ошибки возвращается 0.

lpExistingFileName
Файл-источник; т.е. файл для копирования.
lpNewFileName
Файл-назначение; т.е. новый файл, являющийся копией файла-источника.
bFailIfExists
Если значение равно 0, функция перепишет файл lpNewFileName,если он существует. Если значение отлично от нуля, то произойдет ошибка.

Пример:

' Скопируем файл C:\MySample\temp.txt в C:\Russia\buffer.txt.
' Не будем переписывать файл C:\Russia\buffer.txt если он существует.
Dim retval As Long  ' возвращаемое значение

' копируем файл
retval = CopyFile("C:\MySample\temp.txt", "C:\Russia\buffer.txt", 1)
If retval = 0 Then  ' если ошибка
  Debug.Print "Не могу скопировать файл -- C:\Russia\buffer.txt уже существует.
Else  ' если все нормально
  Debug.Print "Файл скопирован."
End If

Схожие функции: MoveFile
Категория: Файлы

В начало.

последнее обновление: Март 08, 2000
© 1999 Александр Климов


Функции Windows API:CopyRect

Функция CopyRect

Declare Function CopyRect Lib "user32.dll" (lpDestRect As RECT, lpSourceRect As RECT) As Long

Платформа: Win 95/98, Win NT

CopyRect устанавливает прямоугольник равный другому. Это сделано путем дублирования значений исходного прямоугольника к соответствующим значениям другого прямоугольника. Это быстрее, чем установка всех четырех значений вручную в вашем коде. Функция возвращает 0 в случае ошибки, в успешном случае возвращается 1.

lpDestRect
Прямоугольник-цель.
lpSourceRect
Прямоугольник-источник.

Пример:

' Установим прямоугольники источника и цели
' равными прямоугольнику окна,  копируя источник к цели
Dim source As RECT, target As RECT  ' прямоугольники источника и цели
Dim retval As Long  ' возвращаемое значение

' Получаем прямоугольник окна Form1 для источника
retval = GetWindowRect(Form1.hWnd, source)
' Копируем источник в цель
retval = CopyRect(target, source)

Схожие функции: EqualRect
Категория: Прямоугольники

В начало.

последнее обновление: Апрель 28, 2000


Функции Windows API:CreateDirectory

Функция CreateDirectory

Declare Function CreateDirectory Lib "kernel32.dll" Alias "CreateDirectoryA" (ByVal lpPathName As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

CreateDirectory создает новую папку на диске. Также вы можете установить аттрибуты безопасности для вновь созданной папки,если это позволяет операционная система.

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.

Параметры

lpPathName
Имя для новой папки.
lpSecurityAttributes
Windows NT, 2000: Аттрибуты безопасности для новой папки. Windows 95, 98, CE: Этот параметр игнорируется.

Пример

' Создаем новую папку C:\RussianProject и
' устанавливаем аттрибуты по умолчанию.
Dim Security As SECURITY_ATTRIBUTES  ' структура аттрибутов безопасности
Dim retval As Long  ' возвращаемое значение

' Создаем папку.
retval = CreateDirectory("C:\RussianProject", Security)
'Если CreateDirectory вернул 0, значит ошибка
    If retval = 0 Then MsgBox "Ошибка : Не могу создать папку !", vbCritical + vbOKOnly

Схожие функции
CreateDirectoryEx, RemoveDirectory
Категория
Файлы

В начало.

последнее обновление: Март 21, 2000


Функции Windows API:CreateDirectoryEx

Функция CreateDirectoryEx

Declare Function CreateDirectoryEx Lib "kernel32.dll" Alias "CreateDirectoryExA" (ByVal lpTemplateDirectory As String, ByVal lpNewDirectory As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long

Параметры

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.5 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Не поддерживается.

CreateDirectoryEx создает новую папку на диске. Также,вы можете установить аттрибуты безопасности для новой папки,если ваша операционная система поддерживает это свойство.

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.

Параметры

lpTemplateDirectory
Имя папки,которая будет использоваться как шаблон для аттрибутов при создании новой папки.
lpNewDirectory
Имя для новой создаваемой папки.
lpSecurityAttributes
Windows NT, 2000: Аттрибуты безопасности для новой папки. Windows 95, 98, CE: Этот параметр игнорируется.

Пример

' Создаем новую папку C:\RussianProject\Papka и
' устанавливаем аттрибуты безопасности по умолчанию.
'  Папка будет иметь аттрибуты папки
'  C:\Recycled ( "Корзина") ,
' которая имеет аттрибуты Скрытый и Системный.
Dim secattr As SECURITY_ATTRIBUTES  ' структура аттрибутов безопасности
Dim retval As Long  ' возвращаемое значение

' устанавливаем желаемы аттрибуты безопасности
secattr.nLength = Len(secattr)  ' размер структуры
secattr.lpSecurityDescriptor = 0  ' уровень безопасности по умолчанию
secattr.bInheritHandle = 1  ' стандартная установка

' Создаем папку, используя папку C:\Recycled как шаблон.
retval = CreateDiectoryEx("C:\Recycled", "C:\RussianProject\Papka", secattr)

Схожие функцииs
CreateDirectory, RemoveDirectory
Категория
Файлы

В начало.

последнее обновление: Май 28, 2000


Функции Windows API:CreateEllipticRgn

Функция CreateEllipticRgn

Declare Function CreateEllipticRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win 95/98, Win NT

CreateEllipticRgn создает область в виде эллипса.Эллипс, который формирует область,ограничивается прямоугольником, определенным координатами, передаваемые функцией. Ограничительный прямоугольник - самый маленький возможный прямоугольник, который может соответствовать эллипсу. Функция возвращает дескриптор созданной области в успешном случае или 0 в случае ошибки.

X1
Координата x верхнего левого угла ограничительного прямоугольника.
Y1
Координата y верхнего левого угла ограничительного прямоугольника.
X2
Координата x нижнего правого угла ограничительного прямоугольника.
Y2
Координата y нижнего правого угла ограничительного прямоугольника.

Пример:

' Инвертируем пикселы в пределах  области эллипса на окне Form1.
' Область имеет ограничительный прямоугольник (20,30) - (150,110).
Dim hrgn As Long  ' дескриптор области
Dim retval As Long  ' возвращаемое значение

' Создаем  область-эллипс , чтобы инвертировать и получить дескриптор.
hrgn = CreateEllipticRgn(20,30,150,110)  ' ограничительный прямоугольник (20,30)-(150,110)
' инвертируем эту область в окне Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем область для освобождения ресурсов системы.
retval = DeleteObject(hrgn)

Схожие функции: CreateEllipticRgnIndirect
Категория: Регионы

В начало.

последнее обновление: Апрель 28, 2000


Функции Windows API:CreateEllipticRgnIndirect

Функция CreateEllipticRgnIndirect

Declare Function CreateEllipticRgnIndirect Lib "gdi32.dll" (lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

CreateEllipticRgn создает область в виде эллипса. Эллипс определяется ограничительным прямоугольником. Ограничительный прямоугольник - самый маленький возможный прямоугольник, который может соответствовать эллипсу. Функция возвращает дескриптор созданной области в успешном случае или 0 в случае ошибки.

lpRect
Ограничительный прямоугольник для эллипса.

Пример:

' Инвертируем пикселы в пределах  области эллипса на окне Form1.
' Область имеет ограничительный прямоугольник (20,30) - (150,110).
Dim hrgn As Long   ' дескриптор области
Dim bounding As RECT ' ограничительный прямоугольник
Dim retval As Long    ' возвращаемое значение
' загрузим координаты ограничительного прямоугольника в структуру.
retval = SetRect(bounding, 20, 30, 150, 110)
' создаем эллипс от этого ограничительного прямоугольника.
hrgn = CreateEllipticRgnIndirect(bounding)
'  инвертируем эту область в окне Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем область для освобождения ресурсов системы.
retval = DeleteObject(hrgn)

Схожие функции: CreateEllipticRgn
Категория: Регионы

В начало.

последнее обновление: Апрель 30, 2000


Функции Windows API:CreateHatchBrush

Функция CreateHatchBrush

Declare Function CreateHatchBrush Lib "gdi32.dll" (ByVal nIndex As Long, ByVal crColor As Long) As Long

Платформа: Win 95/98, Win NT

CreateHatchBrush создает объект-заштрихованную кисть. При использовании для заполнения области или формы, эта кисть производит закраску определенныя образом в единственном(отдельном) цвете, используя 8x8 ячейку. После того, как программа заканчивает использование заштрихованной кисти, следует использовать DeleteObject, чтобы удалить кисть и свободные ресурсы системы. Функция возвращает дескриптор созданной заштрихованной кисти в успешном случае, или 0, в случае ошибки.

nIndex
Один из следующих флажков, определяющих образец штриховки для создания кисти:
HS_BDIAGONAL = 3
Диагональные линии от левой нижней части до правой верхней.
HS_CROSS = 4
Перекрестный образец горизонтальных и вертикальных линий.
HS_DIAGCROSS = 5
Перекрестный образец перпендикулярных диагональных линий.
HS_FDIAGONAL = 2
Диагональные линии от левой верхней к правой нижней части.
HS_HORIZONTAL = 0
Горизонтальные линии.
HS_VERTICAL = 1
Вертикальные линии.
crColor
Значение цвета RGB,передаваемой кисти.

Пример:

' Рисуем прямоугольник с углами (10,20) и (175,100)
' на окне Form1. Используем желтую кисть с диагональным перекрестным образцом, чтобы заполнить прямоугольник.
Dim hbrush As Long  ' дескриптор заштрихованной желтой кисти
Dim holdbrush As Long  ' дескриптор  заданной по умолчанию кисти  на Form1
Dim retval As Long  ' возвращаемое значение

hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(255, 255, 0))  ' создадим заштрихованную желтую кисть
' сохраним заданную по умолчанию кисть на Form1, чтобы могли восстановить ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Рисуем прямоугольник,заполняя его заштрихованной желтой кистью
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' восстанавливаем кисть по умолчанию и удаляем созданную нами кисть
retval = SelectObject(Form1.hDC, holdbrush)  'старая кисть
retval = DeleteObject(hbrush)  ' удаляем желтую кисть

Схожие функции: CreateSolidBrush
Категория: Кисти

В начало.

последнее обновление: Июнь 19, 2000


Функции Windows API:CreatePen

Функция CreatePen

Declare Function CreatePen Lib "gdi32.dll" (ByVal fnPenStyle As Long, ByVal nWidth As Long, ByVal crColor As Long) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 2.0 или выше.

CreatePen служит для создания объекта перо. Форма пера,созданного функцией ,всегда имеет форму квадрата с размерами сторон,равными nWidth. После завершения программы с использованием пера,вы должны удалить его функцией DeleteObject.

Возвращаемое значение

В случае ошибки функция возвращает 0(Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор к созданному перу.

Параметры

fnPenStyle
Флаги для определения стиля создаваемого пера:
PS_SOLID
Сплошное перо.
PS_DASH
Перо подчеркнуто штриховой линией. nWidth должен быть меньше или равняться одному.
PS_DOT
Перо пунктирно. nWidth должен быть меньше или равняться одному.
PS_DASHDOT
Перо имеет чередующиеся черточки и точки. nWidth должен быть меньше или равняться одному.
PS_DASHDOTDOT
Перо имеет чередующиеся черточки, сопровождаемые двумя точками. nWidth должен быть меньше или равняться одному.
PS_NULL
Перо невидимо.
PS_INSIDEFRAME
Перо сплошное. Всякий раз, когда функция рисует фигуру внутри ограничительного прямоугольника, размеры фигуры сокращены так, чтобы рисунок, включая ширину пера, вписывался полностью в пределах ограничительного прямоугольника.
nWidth
Ширина пера. Если равна 0, перо - всегда точно один пиксел.
crColor
Значение RGB цвета.

Константы

Const PS_SOLID = 0
Const PS_DASH = 1
Const PS_DOT = 2
Const PS_DASHDOT = 3
Const PS_DASHDOTDOT = 4
Const PS_NULL = 5
Const PS_INSIDEFRAME = 6

Пример

' Рисуем эллипс на окне Form1,используя
' квадратное зеленое штриховое перо в один пиксел.
Dim hPen As Long  ' дескриптор для пера
Dim hOldPen As Long  ' дескриптор к предыдущему перу формы Form1
Dim retval As Long  ' возвращаемое значение

' создаем квадратное зеленое штриховое перо с шириной в ноль  (всегда один пиксел).
hPen = CreatePen(PS_DASH, 0, RGB(0, 255, 0))
' выбираем перо,используемое Form1.
hOldPen = SelectObject(Form1.hDC, hPen)

' рисуем эллипс с ограничительным прямоугольником (100,150)-(350,300).
retval = Ellipse(Form1.hDC, 100, 150, 350, 300)

' выбираем старое перо,используемое Form1.
retval = SelectObject(Form1.hDC, hOldPen)
' удаляем созданное нами перо для освобождения ресурсов
retval = DeleteObject(hPen)

Схожие функции
CreatePenIndirect

Категория
Перо

В начало.

последнее обновление: Февраль 24, 2000


Функции Windows API:CreatePenIndirect

Функция CreatePenIndirect

Declare Function CreatePenIndirect Lib "gdi32.dll" (lpLogPen As LOGPEN) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

CreatePenIndirect создает объект перо. Созданное перо,описанное как , логическое перо,через структуру передается функции. После того, как ваша программа завершила работу, используя перо, оно должно быть удалено через функцию DeleteObject.

Возвращаемое значение

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает дескриптор созданного пера.

Параметры

lpLogPen
Описание аттрибутов,передаваемых к создаваемому перу.

Пример

' Рисуем эллипс на окне Form1, используя квадратное,
'заштрихованое линией, с одним пикселом
'по ширине  зеленое перо.
Dim hPen As Long  ' дескриптор к создаваемому перу
Dim hOldPen As Long  ' дескриптор к предыдущему перу Form1
Dim lpinfo As LOGPEN  ' описание пера
Dim retval As Long  ' возвращаемое значение
'Создаем квадратное, подчеркнутое штриховой линией зеленое перо с шириной 0 (всегда один пиксел)
lpinfo.lopnStyle = PS_DASH  ' штрихи
lpinfo.lopnWidth.x = 0  'минимальная ширина
lpinfo.lopnWidth.y = 0  'игнорируем
lpinfo.lopnColor = RGB(0, 255, 0)  ' зеленый
hPen = CreatePenIndirect(lpinfo)
' Выбираем перо,используемое Form1.
hOldPen = SelectObject(Form1.hDC, hPen)

' Рисуем эллипс
retval = Ellipse(Form1.hDC, 100, 150, 350, 300)

' Выбираем старое перо,используемое Form1.
retval = SelectObject(Form1.hDC, hOldPen)
' Удаляем перо для освобождения ресурсов.
retval = DeleteObject(hPen)

Схожие функции
CreatePen
Категория
Перо

В начало.

последнее обновление: Июнь 12, 2000


Функции Windows API:CreatePolygonRgn

Функция CreatePolygonRgn

Declare Function CreatePolygonRgn Lib "gdi32.dll" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

Платформа: Win 95/98, Win NT

CreatePolygonRgn создает многоугольник-регион,определяемый массивом точек.В успешном случае функция возвращает дескриптор к созданному региону или 0 в случае ошибки.

lpPoint
Массив точек,определяющих вершины многоугольника.
nCount
Число элементов в массиве lpPoint.
nPolyFillMode
Один из следующих флагов, определяющих режим заполнения многоугольника:
ALTERNATE = 1
Выбор между заполнением и незаполнением непрерывных секций, чьи границы определены краями многоугольника, пересекающегося через внутреннюю область многоугольника.
WINDING = 2
Любая секция внутри многоугольника заполнена, независимо от любых внутренних многоугольных границ и граней.

Пример:

' Инвертируем пикселы в пределах треугольной области на окне Form1. Треугольная
' область имеет вершины (150,150), (250, 200), и (100, 200). Обратите внимание, как точки загружены
' в массив вершин.
Dim vertex(0 To 2) As POINTAPI  ' массив вершин треугольника
Dim hrgn As Long  ' дескриптор к треугольной области
Dim retval As Long  ' возвращаемое значение

' загружаем вершины треугольной области в массив.
vertex(0).x = 150: vertex(0).y = 150  ' 1 точка: (150,150)
vertex(1).x = 250: vertex(1).y = 200  ' 2 точка: (250,200)
vertex(2).x = 100: vertex(2).y = 200  ' 3 точка: (100,200)

' создаем многоугольную область,используя массив вершин.
hrgn = CreatePolygonRgn(vertex(0), 3, ALTERNATE)
 ' инвертируем пикселы в пределах треугольной области на Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем регион для высвобождения ресурсов.
retval = DeleteObject(hrgn)

Схожие функции: CreatePolyPolygonRgn
Категория: Регионы

В начало.

последнее обновление: Май 29, 2000


Функции Windows API:CreateRectRgn

Функция CreateRectRgn

Declare Function CreateRectRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win 95/98, Win NT

CreateRectRgn создает область прямоугольной формы и обеспечивает дескриптор к нему. Прямоугольник, определяющий область определяется через левые верхние и нижние правые углы. Обратите внимание, что основание и правые грани прямоугольника не являются частью региона. Функция возвращает дескриптор созданной области в случае успеха или 0, в случае ошибки.

X1
Координата x левого верхнего угла прямоугольника.
Y1
Координата y левого верхнего угла прямоугольника.
X2
Координата x нижнего правого угла прямоугольника.
Y2
Координата y нижнего правого угла прямоугольника.

Пример:

' Инвертируем пикселы в пределах прямоугольной области на окне Form1.
'Область имеет углы (20,30) - (150,110).
Dim hrgn As Long  'дескриптор к прямоугольной области
Dim retval As Long  ' возвращаемое значение

' Создаем прямоугольную область и получаем дескриптор к нему.
hrgn = CreateRectRgn(20, 30, 150, 110)  ' Имеет углы (20,30) - (150,110)
' Инвертируем пикселы на Form1 в пределах этой области.
retval = InvertRgn(Form1.hDC, hrgn)
' Удалите область, чтобы освободить ресурсы.
retval = DeleteObject(hrgn)

Схожие функции: CreateRectRgnIndirect, CreateRoundRectRgn
Категория: Регионы

В начало.

последнее обновление: Май 08, 2000


Функции Windows API:CreateRectRgnIndirect

Функция CreateRectRgnIndirect

Declare Function CreateRectRgnIndirect Lib "gdi32.dll" (lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

CreateRectRgnIndirect создает область прямоугольной формы и обеспечивает (дескриптор к нему. Обратите внимание, что основание и правая сторона прямоугольника не являются частью области. Функция возвращает дескриптор недавно созданной области если в успешном случае или 0 в случае ошибки.

lpRect
Прямоугольник, который определяет прямоугольную область.

Пример:

' Инвертируем пикселы в пределах прямоугольной области на окне Form1.
' Область имеет углы (20,30) - (150,110).
Dim therect As RECT 'прямоугольник,определяющий прямоугольную область
Dim hrgn As Long  ' дескриптор
Dim retval As Long  ' возвращаемое значение

' Создаем прямоугольник.
retval = SetRect(therect, 20, 30, 150, 110)
' Создаем прямоугольную область, основанную на этом прямоугольнике.
hrgn = CreateRectRgnIndirect(therect)
' Инвертируем пикселы в пределах этой области на Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем регион для высвобождения ресурсов.
retval = DeleteObject(hrgn)

Схожие функции: CreateRectRgn, CreateRoundRectRgn
Категория: Регионы

В начало.

последнее обновление: Май 27, 2000


Функции Windows API:CreateRoundRectRgn

Функция CreateRoundRectRgn

Declare Function CreateRoundRectRgn Lib "gdi32.dll" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long

Платформа: Win 95/98, Win NT

CreateRoundRectRgn создает округленную прямоугольную область и обеспечивает дескриптор к нему. Регион имеет форму подобно прямоугольнику с округленными углами. Регион определен координатой не-округленного прямоугольника, сопровождаемого шириной и высотой округленных углов. Функция возвращает дескриптор недавно созданного региона в успешном случае, или 0 в случае ошибки.

X1
Координата x левого верхнего угла прямоугольника.
Y1
Координата y левого верхнего угла прямоугольника.
X2
Координата x нижнего правого угла прямоугольника.
Y2
Координата y нижнего правого угла прямоугольника.
X3
Ширина части каждого угла к кругу.
Y3
Высота части каждого угла к кругу.

Пример:

' Инвертируем пикселы в пределах округленной прямоугольной области на окне Form1.
' Эквивалент неокругленного прямоугольника имеет углы (20,30) - (150,110). Округленные углы имеют
' ширину 15 и высоту 10.
Dim hrgn As Long  ' дескриптор к созданной округленной прямоугольной области
Dim retval As Long  ' возвращаемое значение

' Создаем округленную прямоугольную область, и получаем дескриптор
hrgn = CreateRoundRectRgn(20, 30, 150, 110, 15, 10)
 ' Инвертируем пикселы в Form1 в пределах этой области(региона).
retval = InvertRgn(Form1.hDC, hrgn)
' уничтожаем регион для высвобождения ресурсов.
retval = DeleteObject(hrgn)

Схожие функции: CreateRectRgn, CreateRectRgnIndirect
Категория: Регионы

В начало.

последнее обновление: Май 27, 2000


Функции Windows API:CreateSolidBrush

Функция CreateSolidBrush

Declare Function CreateSolidBrush Lib "gdi32.dll" (ByVal crColor As Long) As Long

Платформа: Win 95/98, Win NT

CreateSolidBrush создает объект Кисть,используемый для заливки областей фигур. После окончания использования этим объектом воспользуйтесь функцией DeleteObject для удаления объекта Кисть и освобождения ресурсов компьютера.Функция возвращает дескриптор к новому объекту Кисть.В случае ошибки функция возвращает 0.

crColor
Значение RGB цвета для кисти .

Пример:

' Рисуем прямоугольник с координатами (10,20) и (175,100)
' на форме Form1.  Используем сплошную желтую кисть для заполнения фигуры.
Dim hbrush As Long  ' дескриптор для новой желтой кисти
Dim holdbrush As Long  ' дескриптор к кисти формы Form1,установленной по умолчанию
Dim retval As Long  ' возвращаемое значение

hbrush = CreateSolidBrush(RGB(255, 255, 0))  ' создаем сплошную желтую кисть
' Сохраняем прежнюю кисть формы Form1 для восстановлении ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Русуем прямоугольник залитый желтым цветом
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' Восстанавливаем старую кисть
retval = SelectObject(Form1.hDC, holdbrush)
retval = DeleteObject(hbrush)  ' Уничтожаем желтую кисть

Схожие функции: CreateHatchBrush
Категория: Кисти
В начало.

последнее обновление: Февраль 29, 2000


Функции Windows API:DeleteFile

Функция DeleteFile

Declare Function DeleteFile Lib "kernel32.dll" Alias "DeleteFileA" (ByVal lpFileName As String) As Long

Платформа: Win 95/98, Win NT

DeleteFile удаляет файлы(не пересылая их в корзину). Пользуйтесь ею осторожно,так как при этом не появляется сообщение с потверждением удаления файла. В успешном случае функция возвращает 1, в случае ошибки возвращается 0 (например,при отсутствии файла).

lpFileName
Имя файла для удаления.

Пример:

' Удаляем файл C:\Samples\anyfile.txt
Dim retval As Long  ' возвращаемое значение

retval = DeleteFile("C:\Samples\anyfile.txt")
If retval = 1 Then Debug.Print "Файл успешно удален."
Категория: Файлы

В начало.

последнее обновление: Март 13, 2000


Функции Windows API:DeleteObject

Функция DeleteObject

Declare Function DeleteObject Lib "gdi32.dll" (ByVal hObject As Long) As Long

DeleteObject удаляет объект,после завершения использования этого объекта программой.Объекты включают в себя картинки,кисти,шрифты, палитру, перо и регионы. Удаляя объект,вы освобождаете системные ресуры компьютера.В успешном случае функция возвращает 1,в случае ошибки возвращается 0.

hObject
Дескриптор объекта

Пример:

' Рисуем прямоугольник с координатами (10,20) и (175,100)
' на форме Form1.  Используем сплошную желтую кисть для заполнения фигуры.
Dim hbrush As Long  ' дескриптор для новой желтой кисти
Dim holdbrush As Long  ' дескриптор к кисти формы Form1,установленной по умолчанию
Dim retval As Long  ' возвращаемое значение

hbrush = CreateSolidBrush(RGB(255, 255, 0))  ' создаем сплошную желтую кисть
' Сохраняем прежнюю кисть формы Form1 для восстановлении ее после завершении программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Рисуем прямоугольник,залитый желтым цветом
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' Восстанавливаем старую кисть
retval = SelectObject(Form1.hDC, holdbrush)
retval = DeleteObject(hbrush)  ' Уничтожаем желтую кисть

Категория: Устройства

В начало.

последнее обновление: Февраль 29, 2000


Функции Windows API:DrawIcon

Функция DrawIcon

Declare Function DrawIcon Lib "user32.dll" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

DrawIcon показывает значок на устройстве. Местоположение значка определяется парой координат,передаваемой функцией и определяющей координаты верхнего левого угла значка.

Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.

Параметры

hDC
Дескриптор контекста устройства для показа значка.
x
Координата x точки, чтобы позиционировать верхний левый угол значка.
y
Координата y точки, чтобы позиционировать верхний левый угол значка.
hIcon
Дескриптор значка.

Пример

 'Рисуем текущий курсор на форме
DrawIcon Me.hdc, 0, 0, GetCursor

Схожие функции
DrawIconEx
Категория
Значки

В начало.

последнее обновление:Май 15, 2000


Функции Windows API:Ellipse

Функция Ellipse

Declare Function Ellipse Lib "gdi32.dll" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win32s, Win 95/98, Win NT

Ellipse рисует эллипс на устройстве. Две координатных пары передаваемых функции не являются непосредственно частью эллипса , но определяют его прямоугольник ограничения. Прямоугольник ограничения - самый маленький возможный прямоугольник, содержащий эллипс. Эллипс рисуется текущим цветом устройства. Функция возвращает 0 в случае ошибки, или 1 в успешном случае.

hdc
Контекст устройства.
X1
Координата x верхнего левого угла прямоугольника ограничения.
Y1
Координата y верхнего левого угла прямоугольника ограничения.
X2
Координата x нижнего правого угла прямоугольника ограничения.
Y2
Координата y нижнего правого угла прямоугольника ограничения.

Пример:

' Рисуем красный эллипс с прямоугольником ограничения (25,30)-(100,75)
' на PictureBox1
Dim retval As Long  ' возвращаемое значение

PictureBox1.ForeColor = RGB(255, 0, 0)  ' устанавливаем красный цвет
retval = Ellipse(PictureBox1.hdc, 25, 30, 100, 75)

Схожие функции: AngleArc, Arc, ArcTo, Chord, Pie
Категория: Фигуры
В начало.

последнее обновление: Февраль 08, 2000


Функции Windows API:EnableWindow

Функция EnableWindow

Declare Function EnableWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal fEnable As Long) As Long

Платформа: Win 95/98, Win NT

EnableWindow допускает или отключает окно. Если окно заблокировано, оно не может получить фокус и игнорирует любой предпринятый ввод. Некоторые окна, типа кнопок и других средств управления, будут недоступными, когда заблокированы. Функция возвращает 0, если окно доступно, или ненулевое значение, если окно заблокировано.

hwnd
Дескриптор окна.
fEnable
Если 0, окно будет заблокировано. Если ненулевое, окно будет доступно.

Пример:

' Изменим состояние окна Command1. Если окно
' заблокировано-делаем доступным; если недоступно-отключим.
Dim wasenabled As Long  ' состояние окна Command1(доступно или нет)
Dim retval As Long  ' возвращаемое значение

' узнаем состояние окна Command1(доступно или нет)
wasenabled = IsWindowEnabled(Command1.hWnd)
If wasenabled = 0 Then  ' если не доступно, делаем доступным
  retval = EnableWindow(Command1.hWnd, 1)
Else  ' если доступно-блокируем
  retval = EnableWindow(Command1.hWnd, 0)
End If

Схожие функции: IsWindowEnabled
Категория: Окна

В начало.

последнее обновление: Май 12, 2000


Функции Windows API:EnumWindows

Функция EnumWindows

Declare Function EnumWindows Lib "user32" (ByVal lpEnumFunc As Long, ByVal lParam As Long) As Boolean

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 и выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 и выше.

EnumWindows перечисляет все окна верхнего уровня. Игнорирует дочерние окна. (Обратите внимание,что перечисляются все окна,в том числе невидимые для пользователя.)

Возвращаемое значение
В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). При успешной операции функция возвращает число,отличное от нуля.

Параметры

lpEnumFunc
Указатель на функцию обратного вызова EnumWindowsProc.
lParam
Дополнительное значение,определяемое приложением.

Пример:

' Отображаем заголовки всех окон.
' Если окно не имеет заголовка,оно отображаться не будет.

' *** Поместите этот код в модуль.  Это функция с обратным вызовом. ***
' Эта функция показывает заголовок окна,используя его описатель.
Public Function EnumWindowsProc(ByVal hwnd As Long, ByVal lParam As Long) As Boolean
  Dim sSave As String 'текст в буфере
  Dim retval As Long  ' возвращаемое значение
retval = GetWindowTextLength(hwnd) ' определяем длину заголовка окна
sSave = Space(retval)
 GetWindowText hwnd, sSave, retval + 1
Form1.Print Str$(hwnd) + " " + sSave
'продолжаем перечисление окон
    EnumWindowsProc = True
 End Function

' *** Поместите код в любое место,где будете перечислять окна ***
    Me.AutoRedraw = True
    'вызываем функцию Enumwindows
    EnumWindows AddressOf EnumWindowsProc, ByVal 0&

' Обратите внимание, что lParam
' установлен в 0, потому что мы не должны передавать любую дополнительную информацию к функции.

Схожие функции
EnumChildWindows, EnumThreadWindows
Категория
Окна

В начало.

последнее обновление: Июнь 01, 2000
© 1999 А.Климов.
Русский_Проект


Функции Windows API:EqualRect

Функция EqualRect

Declare Function EqualRect Lib "user32.dll" (lpRect1 As RECT, lpRect2 As RECT) As Long

Платформа: Win 95/98, Win NT

EqualRect определяет, являются ли два прямоугольника равными. Прямоугольники считаются равными, если и только, если левые верхние и нижние правые углы (точки, которые определяют прямоугольники) одного прямоугольника, равны таковым другого. Функция возвращает 1, если эти два прямоугольника равны и 0, если они неравны.

lpRect1
Первый из двух прямоугольников для сравнения.
lpRect2
Второй из двух прямоугольников для сравнения.

Пример:

' Демонстрация проверки двух прямоугольников
Dim r As RECT, s As RECT
Dim areequal As Long  ' Являются ли прямоугольники равными или нет
Dim retval As Long  ' возвращаемое значение

retval = SetRect(r, 15, 20, 100, 110)  ' r = (15,20)-(100,110)
retval = SetRect(s, 15, 20, 100, 110)  ' s = (15,20)-(100,110)
areequal = EqualRect(r, s)  ' сравниваем два прямоугольника
If areequal = 1 Then Debug.Print "Одинаковы" Else Debug.Print "Не одинаковы"

Схожие функции: CopyRect
Категория: Прямоугольники

В начало.

последнее обновление: Май 26, 2000


Функции Windows API:EqualRgn

Функция EqualRgn

Declare Function EqualRgn Lib "gdi32.dll" (ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long) As Long

Платформа: Win 95/98, Win NT

EqualRgn определяет, содержат ли две области(региона) точно такую же область. Хотя дескрипторы региона будут конечно различны, они могут обращаться) к регионам идентичного размера, формы, и позиции. Функция возвращает ненулевое значение, если эти две области относятся к идентичным областям, или 0, если они (относятся к различным областям.

hSrcRgn1
Первый из двух регионов для сравнения.
hSrcRgn2
Второй из двух регионов для сравнения.

Пример:

' Иллюстрируем равные и неравные регионы. Сравниваем
' три различных области, два из них одинаковы,а третья
' не равна им.
Dim hRgn1 As Long, hRgn2 As Long, hRgn3 As Long  ' три области
Dim areequal As Long  ' индикатор равно-неравно
Dim retval As Long  ' возвращаемое значение

' три региона-эллипсы.
hRgn1 = CreateEllipticRgn(20, 30, 120, 80)
hRgn2 = CreateEllipticRgn(20, 30, 120, 80)
hRgn3 = CreateEllipticRgn(50, 50, 200, 150)

' сравниваем первые два региона (должны быть одинаковыми).
areequal = EqualRgn(hRgn1, hRgn2)  ' индикатор должен иметь ненулевое значение
If areequal = 0 Then Debug.Print "Не равны" Else Debug.Print "Равны"
' сравниваем первый и третий эллипсы
areequal = EqualRgn(hRgn1, hRgn3)  ' индикатор должен быть нулевым
If areequal = 0 Then Debug.Print "Не равны" Else Debug.Print "Равны"

' удаляем все регионы для высвобождения ресурсов.
retval = DeleteObject(hRgn1)
retval = DeleteObject(hRgn2)
retval = DeleteObject(hRgn3)

Категория: Регионы

В начало.

последнее обновление: Май 30, 2000


Функции Windows API:ExitWindowsEx

Функция ExitWindowsEx

Declare Function ExitWindowsEx Lib "user32.dll" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Платформа

Win 95/98, Win NT

ExitWindowsEx выключает или перезагружает компьютер.Функция возвращает 0 в случае ошибки и 1 в успешном случае.

uFlags
Один или несколько флагов,определяющих способ выключения или перезагрузки компьютера:
EWX_FORCE = 4
Закрывает все программы без приглашения сохранить файлы.
EWX_LOGOFF = 0
Отключает от сети.Аналог - войти в систему под другим именем. (Завершение сеанса [name]).
EWX_POWEROFF = 8
Завершает работу системы и если есть возможность выключает компьютер.
EWX_REBOOT = 2
Перезагружает компьютер.
EWX_SHUTDOWN = 1
Завершает работу и выключает питание, записывает все файловые буферы на диск, останавливает все работающие системные процессы.
dwReserved
Зарезервированный параметр для будущих версий Windows. Всегда установлен в 0.

Пример

' Перезагружаем компьютер, закрывая все открытые программы.
Dim retval As Long  ' возвращаемое значение

retval = ExitWindowsEx(EWX_REBOOT Or EWX_FORCE, 0)
If retval = 0 Then Debug.Print "Не удается перезагрузить компьютер."
Категория
Разное

В начало.

последнее обновление: Июнь 04, 2000


Функции Windows API:ExtFloodFill

Функция ExtFloodFill

Declare Function ExtFloodFill Lib "gdi32.dll" (ByVal hdc As Long, ByVal nXStart As Long, ByVal nYStart As Long, ByVal crColor As Long, ByVal fuFillType As Long) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Не поддерживается.

ExtFloodFill позволяет залить сплошную область устройства,начинающуюся в точке с координатами(x,y) цветом,определенном параметром crColor и используя выбранную кисть.

В случае ошибки функция возвращает 0 (Windows NT, 2000: используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.

Параметры

hdc
Дескриптор контекста устройства,на котором будет происходить заливка.
nXStart
Координата x точки начала заливки.
nYStart
Координата y точки начала заливки.
crColor
Значение RGB ,определяющее цвет заливки. Это свойство также зависит от флага fuFillType.
fuFillType
Флаги.определяющие тип заливки:
FLOODFILLBORDER
Заливка области цветом crColor.Точка(x,y) должна находиться в пределах закрашиваемой области. Заливка охватит поверхность любого цвета в пределах области, которые не имеют цвета crColor.
FLOODFILLSURFACE
Заливка от начальной точки во всех направлениях до достижении со цветом crColor. Граница заливки составлена из любого цвета, который не идентичен crColor.

Константы

Const FLOODFILLBORDER = 0
Const FLOODFILLSURFACE = 1

Пример

' Рисуем сплошной зеленый эллипс на форме Form1 и заливаем
' область  диагонально заштрихованной синей кистью.
Dim hPen As Long, hBrush As Long  ' дескрипторы пера и кисти
Dim hOldPen As Long, hOldBrush As Long  ' дескрипторы к ранее выбранным объектам
Dim retval As Long  ' возвращаемое значение

' создаем сплошное зеленое перо шириной в один пиксел
hPen = CreatePen(PS_SOLID, 0, RGB(0, 255, 0))
' Выбераем его для использования в Form1, отмечая предыдущее перо.
hOldPen = SelectObject(Form1.hDC, hPen)
' Создаем синюю  диагонально заштрихованную кисть.
hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
' Выбераем ее для использования в Form1, отмечая предыдущую кисть.
hOldBrush = SelectObject(Form1.hDC, hBrush)

' Рисуем эллипс с ограничивающим прямоугольником (100,150)-(350, 350)
retval = Ellipse(Form1.hDC, 100, 150, 350, 350)
' Заливаем  эллипс (используем зеленую границу)
' начиная с точки (125,125) внутри эллипса.
retval = ExtFloodFill(Form1.hDC, 125, 125, RGB(0, 255, 0), FLOODFILLBORDER)

' Восстанавливаем старые перо и кисть.
retval = SelectObject(Form1.hDC, hOldPen)
retval = SelectObject(Form1.hDC, hOldBrush)
' Удаляем созданные кисть и перо для освобождения ресурсов.
retval = DeleteObject(hPen)
retval = DeleteObject(hBrush)

Категория
Графика

В начало.

последнее обновление: Март 09, 2000


Функции Windows API:ExtractIconEx

Функция ExtractIconEx

Declare Function ExtractIconEx Lib "shell32.dll" Alias "ExtractIconExA" (ByVal lpszFile As String, ByVal nIconIndex As Long, phiconLarge As Long, phiconSmall As Long, ByVal nIcons As Long) As Long

Платформа

  • Windows 95: Поддерживается
  • Windows 98: Поддерживается.
  • Windows NT: Требуется Windows NT 4.0 или вышe.
  • Windows 2000: Поддерживается.
  • Windows CE: Requires Windows CE 1.0 or later.

ExtractIconEx извлекает значки из файлов *.exe,*.dll и *.ico.Функция может извлекать значки разных размеров,чьи описатели находятся в двух массивах. Также,функция может определить количество больших и маленьких значков,хранимых в файле.

Возвращаемое значение

Если nIconIndex равен -1, phiconLarge равен 0,и phiconSmall равен 0, то функция возвращает количество значков,хранимых в выбранном файле.В остальных случаях ,функция возвращает число значков,успешно извлеченных из файла.

Параметры

lpszFile
Имя файла с расширением .exe, .dll, or .ico для извлечения значков.
nIconIndex
Отсчитываемый от нуля индекс первого значка,извлекаемый из файла. Если это -1 и оба параметра phiconLarge и phiconSmall равны 0,функция возвращает число значков в файле. Windows 95, 98, NT 4.0 или выше, 2000:Если это - отрицательное целое число и по крайней мере или phiconLarge или phiconSmall (или оба) не нуль, функция первым извлекает значок, чей идентификатор ресурса равняется абсолютному значению этого параметра.
phiconLarge
Массив, который получает описатели больших значков, извлеченных из файла. Чтобы не извлекать больше одного значка, установите этот параметр в 0.
phiconSmall
Массив, который получает описатели маленьких значков, извлеченных из файла. Чтобы не извлекать больше одного значка, установите этот параметр в 0.
nIcons
Число значков, извлеченных из файла. Значки извлекаются последовательно, начиная со значка, идентифицированного nIconIndex.

Пример

' Получаем число значков,хранимых в файле
' C:\Windows\System\shell32.dll.

Dim lpszFile       As String 'имя файла
Dim lIcons         As Long 'число значков
lpszFile = "c:\windows.000\system\shell32.dll"

' Вычисляем число значков в файле shell32.dll
lIcons = ExtractIconEx(lpszFile, -1, 0, 0, 0)

  Debug.Print "Всего " & lIcons & "значков"

Примечание Вы можете скачать более подробный пример-
extractico.zip
Схожие функции
ExtractIcon
Категория
Значки

В начало.

последнее обновление: Январь 20, 2000


Функции Windows API:FillRect

Функция FillRect

Declare Function FillRect Lib "user32.dll" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long

Платформа: Win 95/98, Win NT

FillRect заполняет прямоугольную область на устройстве, используя указанную кисть. Граница прямоугольной области не рисуется, и основание и правые грани данного прямоугольника не заполняются (они не являются частью внутренней области прямоугольника). Обратите внимание, что эта функция использует кисть, передаваемой функции, так что нет необходимости использовать SelectObject для выбора устройством кисти. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hdc
Контекст устройства для заполнения прямоугольной области.
lpRect
Координаты прямоугольной области для заполнения.
hBrush
Дескриптор кисти, чтобы использовать для заполнения прямоугольной области.

Пример:

' Используем синюю диагонально - перекрестную
'заштрихованную кисть, чтобы заполнить прямоугольную
' область на окне Form1. Прямоугольная область имеет
'координаты (20,25) - (200,175).

Dim hbrush As Long  ' Получаем дескриптор синей заштрихованной кисти
Dim r As RECT  ' Прямоугольная область для заполнения
Dim retval As Long  ' возвращаемое значение

' устанавливаем координаты прямоугольника r
retval = SetRect(r, 20, 25, 200, 175)  ' теперь r = (20,25)-(200,175)
' создаем синюю диагонально - перекрестную заштрихованную кисть
hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
' Заполним желаемую прямоугольную область
retval = FillRect(Form1.hDC, r, hbrush)
' Удалим кисть, которую мы создавали, чтобы освободить ресурсы
retval = DeleteObject(hbrush)

Схожие функции: FillRgn, FrameRect
Категория: Фигуры

В начало.

последнее обновление:Июнь 18, 2000


Функции Windows API:FillRgn

Функция FillRgn

Declare Function FillRgn Lib "gdi32.dll" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long) As Long

Платформа: Win 95/98, Win NT

FillRgn заполняет область, определенную регионом на устройстве. Вместо использования текущей кистью устройства, регион заполнен, используя кисть, передаваемой функции. Граница региона не рисуется;заполнена только его область. Функция возвращает 0 в случае ошибки, или ненулевое значение в успешном случае.

hdc
Контекст устройства для заполнения области.
hRgn
Дескриптор региона на устройстве.
hBrush
Дескриптор кисти, чтобы использовать для заполнения региона.

Пример:

' Используем светло-серую сплошную кисть, чтобы заполнить эллипс на окне
' Form1. Ограничительный прямоугольник эллипса - (30,20) - (150,110).
Dim hrgn As Long  ' дескриптор региона
Dim hbrush As Long  ' дескриптор кисти, чтобы заполнить регион
Dim retval As Long  ' возвращаемое значение

' Сначала, получим дескриптор сплошной светло-серой кисти.
hbrush = GetStockObject(LTGRAY_BRUSH)
' Затем, создадим эллипс и получим его дескриптор.
hrgn = CreateEllipticRgn(30, 20, 150, 110)
' Заполним  регион, используя светло-серую кисть
retval = FillRgn(Form1.hDC, hrgn, hbrush)
' Удалим регион, чтобы освободить ресурсы. Кисть удалять не обязательно.
retval = DeleteObject(hrgn)

Схожие функции: FillRect, FrameRgn
Категория: Регионы

В начало.

последнее обновление: Июнь 18, 2000


Функции Windows API:FindWindow

Функция FindWindow

Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000:Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

FindWindow ищет все окна,которые соответствуют имени класса окна и-или названию(заголовку) окна. Механизм поиска функции не чувствителен к регистру. Если Вы не желаете определять имя класса или название(заголовок) окна, Вы должны использовать пустой указатель,как признак его незначимости(vbNullString) .

Возвращаемое значение

Если ошибка произошла, или соответствующее окно не было найдено, функция возвращает 0 (используйте GetLastError для получения кода ошибки). При успешной операции, функция возвращает дескриптор найденного окна .

Параметры

lpClassName
Имя класса окна. Используйте vbNullString,чтобы игнорировать класс окна.
lpWindowName
Имя окна(заголовок в верхней части окна). Используйте vbNullString,чтобы игнорировать заголовок окна.

Пример

' Ищем окно с именем Калькулятор и заставляем мигнуть заголовок.
'Не обязательно знать имя класса окна,которое мы ищем,
'но можем использовать это имя при желании.
Dim hwnd As Long  ' дескриптор окна
Dim retval As Long  ' возвращаемое значение

' пытаемся найти окно Калькулятор.
hwnd = FindWindow(vbNullString, "Калькулятор")
If hwnd = 0 Then  ' если не найдем
  Debug.Print "Калькулятор в настоящее время не выполняется."
Else
  ' Заставляем мигнуть заголовок один раз.
  retval = FlashWindow(hwnd, 1)
  Sleep 500  'Пауза в течении полсекунды
  retval = FlashWindow(hwnd, 0)
End If

Схожие функции
FindWindowEx
Категория
Окна

В начало.

последнее обновление:Январь 13, 2000
© 1999-2000 Александр Климов.
Русский_Проект


Функции Windows API:FlashWindow

Функция FlashWindow

Declare Function FlashWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal bInvert As Long) As Long

Платформа: Win 95/98, Win NT

FlashWindow заставляет мигать заголовок окна. Функция используется для привлечения внимания пользователя.При мигании происходит изменение цвета активного окна на неактивное и наоборот. Желательно,чтобы окно мигало несколько раз вместо одного раза.Когда вы используете эту функцию,не забывайте вызвать ее еще раз,чтобы вернуться к первоначальному состоянию,устанавливая bInvert в 0. Функция возвращает 0 если окно было неактивным перед миганием и 1,если было активным.

hwnd
дескриптор окна для мигания.
bInvert
Определяет способ мигания. Если отлично от нуля, переключает область заголовка от активного к бездействующему просмотру (или наоборот). Если ноль, восстанавливает окно к его нормальному просмотру.

Пример: Расположите на форме CommandButton и вставьте следующий код:

Private Sub Command1_Click()
' Окно мигает 5 раз для привлечения внимания
Dim c As Integer, retval As Long
For c = 1 To 10  ' 5 раз цвет активного окна и 5 раз-неактивного
  retval = FlashWindow(Form1.hwnd, 1)  ' переключаем вид окна
  Sleep 500  ' пауза через каждые 500 миллисекуд (1/2 секунды)
Next c
retval = FlashWindow(Form1.hwnd, 0)  ' окно должно выглядить активным
End Sub

Категория: Окна
В начало.

последнее обновление: Январь 7, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:FrameRect

Функция FrameRect

Declare Function FrameRect Lib "user32.dll" (ByVal hdc As Long, lpRect As RECT, ByVal hBrush As Long) As Long

Платформа: Win 95/98, Win NT

FrameRect рисует рамку с шириной один пиксел вокруг прямоугольника на устройстве, используя данную кисть.рисует рамку с шириной один пиксел вокруг прямоугольника на устройстве, используя данную кисть. Эта рамка может быть эквивалентна краю заполненного прямоугольника (пользуйтесь FillRect) . Обратите внимание, что эта функция использует кисть, передаваемой функции, так что нет необходимости использовать SelectObjectдля выбора кисти устройства. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hdc
Контекст устройства для рисования прямоугольной рамки.
lpRect
Прямоугольник, который определяет прямоугольную рамку.
hBrush
Дескриптор кисти, чтобы использовать для рисования прямоугольной рамки.

Пример:

' Используем синюю диагонально - перекрестную заштрихованную кисть, чтобы нарисовать прямоугольную
' рамку на окне Form1. Прямоугольная рамка имеет координаты (20,25) - (200,175).

Dim hbrush As Long  ' Получаем дескриптор синей заштрихованной кисти
Dim r As RECT  ' Прямоугольная область для рамки
Dim retval As Long  ' возвращаемое значение

' Установим координаты прямоугольника r
retval = SetRect(r, 20, 25, 200, 175)  ' теперь r = (20,25)-(200,175)
' Создаем синюю диагонально - перекрестную заштрихованную кисть
hbrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 0, 255))
' Заполним желаемую прямоугольную область
retval = FrameRect(Form1.hDC, r, hbrush)  ' Создаем прямоугольник, используя кисть
' Удалим кисть, которую мы создавали, чтобы освободить ресурсы
retval = DeleteObject(hbrush)

Схожие функции: FillRect, FrameRgn
Категория: Фигуры

В начало.

последнее обновление: Июнь 18, 2000


Функции Windows API:FrameRgn

Функция FrameRgn

Declare Function FrameRgn Lib "gdi32.dll" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long

Платформа: Win 95/98, Win NT

FrameRgn рисует рамку (границу) вокруг данной области на устройстве, используя указанную кисть.Текущая кисть устройства не используется. Ширина и высота рамки также определяются функцией. Функция возвращает 0 в случае ошибки, или ненулевое значение в успешном случае.

hdc
Контекст устройства
hRgn
Дескриптор региона для рисования рамки.
hBrush
Дескриптор кисти, используемой для рисования рамки.
nWidth
Ширина в пикселах вертикальных штрихов кисти.
nHeight
Высота в пикселах горизонтальных штрихов кисти.

Пример:

' Рисуем рамку вокруг эллипса на форме Form1.  Рамка имеет
' ширину в 5 и высоту в 3 пиксела.  Область ограничена прямоугольником (20,30)-(220,180).
' Используется зеленая диагонально-заштрихованная кисть
Dim hRgn As Long  ' дескриптор региона для рамки
Dim hBrush As Long  ' дескриптор для кисти
Dim retval As Long  ' возвращаемое значение

' Создаем эллипс и кисть.
hRgn = CreateEllipticRgn(20, 30, 220, 180)
hBrush = CreateHatchBrush(HS_DIAGCROSS, RGB(0, 255, 0))

' Рамка для региона,используя созданную кисть.
retval = FrameRgn(Form1.hDC, hRgn, hBrush, 5, 3)

' Удаляем регион и кисть для освобождения ресурсов.
retval = DeleteObject(hRgn)
retval = DeleteObject(hBrush)

Схожие функции: FillRgn, FrameRect
Категория: Регионы

В начало.

последнее обновление: Июнь 19, 2000


Функции Windows API:GetACP

Функция GetACP

Declare Function GetACP Lib "kernel32" () As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.

GetOACP возвращает имя кодовую страницу Windows(ANSI),установленную на компьютере

Возвращаемое значение

Функция возвращает ANSI идентификатор кодовой страницы для системы или идентификатор,заданный по умолчанию,если не определена текущая кодовая страница.

ANSI идентификаторы кодовой страницы.

Идентификатор | Значение
874 | Thai
932 | Japan
936 | Chinese (PRC, Singapore)
949 | Korean
950 | Chinese (Taiwan; Hong Kong SAR, PRC)
1200 | Unicode (BMP of ISO 10646)
1250 | Windows 3.1 Eastern European
1251 | Windows 3.1 Cyrillic
1252 | Windows 3.1 Latin 1 (US, Western Europe)
1253 | Windows 3.1 Greek
1254 | Windows 3.1 Turkish
1255 | Hebrew
1256 | Arabic
1257 | Baltic

Пример:

' Определяем кодовую страницу ANSI.
MsgBox "ANSI = " & GetACP

Схожие функции
GetOEMCP
Категория:
Доступ к параметрам системы

В начало.

последнее обновление: Июнь 09, 2000


Функции Windows API:GetActiveWindow

Функция GetActiveWindow

Declare Function GetActiveWindow Lib "user32.dll" () As Long

Платформа: Win 95/98, Win NT

GetActiveWindow возвращает дескриптор активного окна вашего текущего приложения.(функция работает только с окнами,созданными вашей программой,т.е. вы не можете найти активное окно другой программы.) Если ваше приложение неактивно,то функция ищет окно,которое будет активным,когда приложение станет активным.В случае ошибки,или в случае,если в вашей программе нет активных окон,функция возвращает 0.

Пример:

' Используем FlashWindow для мигания заголовка формы
Dim hactive As Long  ' дескриптор активного окна
Dim retval As Long  ' возвращаемое значение

hactive = GetActiveWindow()  ' получаем дескриптор активного окна программы
' заставляем мигать заголовок формы
retval = FlashWindow(hactive, 1): Sleep 250
retval = FlashWindow(hactive, 1): Sleep 250
retval = FlashWindow(hactive, 0)

Схожие функции: GetForegroundWindow, GetWindow, SetActiveWindow
Категория Окна

В начало

последнее обновление: Март 16, 2000


Функции Windows API:GetArcDirection

Функция GetArcDirection

Declare Function GetArcDirection Lib "gdi32.dll" (ByVal hdc As Long) As Long

Платформа: Win 95/98, Win NT

GetArcDirection определяет направление, в котором дуги рисуются на устройстве. Дуги могут рисоваться по часовой стрелке или против часовой стрелки от отправной точки до конечной точки. Хотя эта функция поддерживается в Win 95/98, эти платформы игнорируют установку и всегда рисуют дуги против часовой стрелки! Функция возвращает 0 в случае ошибки, или точно один из следующих флажков, определяющих направление для вывода дуг:

AD_CLOCKWISE = 2
Дуги рисуются по часовой стрелке от отправной точки до конечной точки.
AD_COUNTERCLOCKWISE = 1
Дуги рисуются против часовой стрелки от отправной точки до конечной точки.
hdc
Контекст устройства для вывода дуги.

Пример:

' Показываем направление,в котором рисуется дуга на форме.
Dim arcdir As Long  ' направление дуги

arcdir = GetArcDirection(Form1.hDC)  ' получаем направление дуги для Form1
If arcdir = AD_CLOCKWISE Then
  Debug.Print "Form1 рисует дугу по часовой стрелке."
ElseIf arcdir = AD_COUNTERCLOCKWISE Then
  Debug.Print "Form1 рисует дугу против часовой стрелки."
End If

Схожие функции: AngleArc, Arc, ArcTo, SetArcDirection
Категория Линии и кривые

В начало

последнее обновление: Июнь 20, 2000


Функции Windows API:GetClassName

Функция GetClassName

Declare Function GetClassName Lib "user32.dll" Alias "GetClassNameA" (ByVal hWnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long

Платформа

  • Windows 95/98: Поддерживает.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживает.
  • Windows CE: Требуется Windows CE 1.0 или выше.

GetClassName возвращает имя класса,которому принадлежит окно. The name of the class is placed into the string passed as lpClassName.

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае, функция возвращает количество символов,копируемых в строку lpClassName.

Параметры

hWnd
дескриптор окна,чье имя класса мы определяем.
lpClassName
Строка для получения имени класса.
nMaxCount
Размер в байтах строки lpClassName.

Пример:

' Показываем имя класса окна формы Form1.
Dim classname As String  ' переменная для имени класса
Dim slength As Long  ' длина строки

' Создаем место для строки.
classname = Space(255)  ' вполне достаточно
' Получаем имя класса.
slength = GetClassName(Form1.hWnd, classname, 255)
' Извлекаем информацию из строки.
classname = Left(classname, slength)  ' удаляем пробелы
Debug.Print "Класс формы Form1: "; classname

Категория:
Классы

В начало.

последнее обновление: Февраль 21, 2000


Функции Windows API:GetClipCursor

Функция GetClipCursor

Declare Function GetClipCursor Lib "user32.dll" (lprc As RECT) As Long

Платформа: Win 95/98, Win NT

GetClipCursor находит текущий прямоугольник ограждения курсора мыши. Курсор мыши ограничен использованием ClipCursor. Курсор ограничен в этом прямоугольнике -- даже SetCursorPos не может освободить это. Если нет явного прямоугольника ограждения, это - действительно размер экрана. Координаты прямоугольника помещены в lprc. Функция возвращает 0 в случае ошибки, или 1 в успешном случае.

lprc Координаты прямоугольника ограждения.

Пример:

' Отобразим координаты прямоугольника ограждения.
Dim r As RECT  ' координаты прямоугольника
Dim retval As Long  ' возвращаемое значение

retval = GetClipCursor(r)  ' читаем координаты и помещаем их в r
Debug.Print r.Left; r.Top  ' координаты(x,y) верхнего левого угла
Debug.Print r.Right; r.Bottom  ' координаты(x,y) нижнего правого угла

Схожие функции: ClipCursor
Категория Курсоры

В начало

последнее обновление: Май 22, 2000


Функции Windows API:GetComputerName

Функция GetComputerName

Declare Function GetComputerName Lib "kernel32.dll" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Платформа

Win 95/98, Win NT

GetComputerName возвращает имя компьютера пользователя.Имя помещено в строковую переменную , как lpBuffer. Функция возвращает 0, если произошла ошибка, и 1 в случае успеха.

Параметры

lpBuffer
Строка, достаточно большая для хранения имени компьютера и закончивающая нулевым(пустым) символом.
nSize
Длина строки lpBuffer в символах.

Пример

' Показываем имя компьютера
Dim compname As String, retval As Long

compname = Space(255)  ' выделяем достаточно большое место для имени
retval = GetComputerName(compname, 255)  ' получаем имя компьютера
' удаляем нулевой символ
compname = Trim(compname)
Debug.Print compname  ' показываем имя компьютера
Категория:
Системная информация

В начало.

последнее обновление: Январь 25, 2000


Функции Windows API:GetCursor

Функция GetCursor

Declare Function GetCursor Lib "user32.dll" () As Long

Платформа: Win 95/98, Win NT

GetCursor находит дескриптор текущего курсора мыши. Это - курсор, который используется, чтобы представлять указатель мыши на экране. Функция возвращает дескриптор курсора в успешном случае или 0, если происходит ошибка.

 'Рисуем текущий курсор на форме
DrawIcon Me.hdc, 0, 0, GetCursor

Схожие функции: SetCursor
Категория Курсоры

В начало

последнее обновление:Май 15, 2000


Функции Windows API:GetCursorPos

Функция GetCursorPos

Declare Function GetCursorPos Lib "user32.dll" (lpPoint As POINTAPI) As Long

Платформа

Win 95/98, Win NT

GetCursorPos возвращает текущие координаты курсора мыши. Координаты x и y (относятся ко всему экрану) передаются в переменную lpPoint. Функция возвращает 0 в случае ошибки и 1 при успешном вызове.

lpPoint
Получаемые координаты x и y курсора.

Пример

' определяем координаты курсора
Dim coord As POINTAPI  ' координаты курсора
Dim retval As Long ' возвращаемое значение

retval = GetCursorPos(coord)
Debug.Print "Координаты курсора:"; coord.x; coord.y

Схожие функции

SetCursorPos

Категория

Курсоры
В начало.

последнее обновление: Февраль 02, 2000


Функции Windows API:GetDC

Функция GetDC

Declare Function GetDC Lib "user32.dll" (ByVal hWnd As Long) As Long

Платформа

Win 95/98, Win NT

GetDC возвращает контекст устройства (DC) окна или другого объекта,имеющим дескриптор.Захватив контекст устройства,вы обязаны вернуть его системе через функцию ReleaseDC. Если вы попытаетесь получить контекст чего-то,не являющимся устройством,функция возвратит 0.Не пользуйтесь функцией DeleteDC для удаления контекста устройства при завершении работы.

hWnd
дескриптор контекста устройста

Пример

' Находим контекст устройства Рабочего стола
Dim deskhwnd As Long  ' дескриптор Рабочего стола
Dim deskhdc As Long  ' контекст устройства
Dim retval As Long  ' возвращаемое значение

deskhwnd = GetDesktopWindow()  ' получаем дескриптор рабочего стола
deskhdc = GetDC(deskhwnd)   ' получаем контекст устройства

' здесь вы размещаете свой код

retval = ReleaseDC(deskhwnd, deskhdc)  ' освобождаем ресурсы,взятые у контекста устройства.
Схожие функции CreateDC, ReleaseDC
Категория Устройства

В начало.

последнее обновление: Февраль 1, 2000


Функции Windows API:GetDesktopWindow

Функция GetDesktopWindow

Declare Function GetDesktopWindow Lib "user32.dll" () As Long

Платформа Win 95/98, Win NT

GetDesktopWindow возвращает дескриптор Рабочего Стола.Рабочий Стол-это основное окно в Windows,которое отображается во весь экран.В случае ошибки,функция возвращает 0 вместо описателя.

Пример

' дескриптор Рабочего стола требует найти контекст устройства
Dim deskhwnd As Long  ' дескриптор
Dim deskhdc As Long  ' контекст устройства
Dim retval As Long  ' возвращаемое значение

deskhwnd = GetDesktopWindow()  ' получаем дескриптор рабочего стола
deskhdc = GetDC(deskhwnd)  ' получаем контекст устройства

' здесь вы размещаете свой код

retval = ReleaseDC(deskhwnd, deskhdc)  ' освобождаем контекст устройства
Категория
Окна

В начало.

последнее обновление: Январь 29, 2000


Функции Windows API:GetDiskFreeSpace

Функция GetDiskFreeSpace

Declare Function GetDiskFreeSpace Lib "kernel32.dll" Alias "GetDiskFreeSpaceA" (ByVal lpRootPathName As String, lpSectorsPerCluster As Long, lpBytesPerSector As Long, lpNumberOfFreeClusters As Long, lpTotalNumberOfClusters As Long) As Long

Платформа

  • Windows 95: Поддерживается с ограничениями; используйте GetDiskFreeSpaceEx .
  • Windows 98: Поддерживается с ограничениями; используйте GetDiskFreeSpaceEx .
  • Windows NT: Требуется Windows NT 3.1 или выше ; используйте GetDiskFreeSpaceEx .
  • Windows 2000: Поддерживается ; используйте GetDiskFreeSpaceEx .
  • Windows CE: Не поддерживается.

GetDiskFreeSpace возвращает информацию относительно количества места на диске. Эта информация включает число секторов в каждом кластере, число байтов в каждом секторе, число свободных кластеров, и общего количества кластеров. Из-за ограничений 32-разрядного типа данных целого числа, эта функция работает должным образом только с дисками с объемом меньше, чем 2 МБАЙТ. Другая функция GetDiskFreeSpaceEx не имеет этих ограничений.

При возникновении ошибки,функция возвращает 0 (используйте GetLastError для определения кода ошибки). При успешном случае,функция возвращает значение,отличное от нуля

Параметры

lpRootPathName
Корневой каталог диска,например "c:\" или "a:\"
lpSectorsPerCluster
число секторов в кластере.
lpBytesPerSector
число байт в секторе.
lpNumberOfFreeClusters
число свободных кластеров Windows 2000: Это может быть более низкое чем фактическое значение.
lpTotalNumberOfClusters
общее число кластеров. Windows 2000: Это может быть более низкое чем фактическое значение.

Пример

' Считаем и отображаем количество свободного места и общего объема диска C:
Dim secPerClus As Long  ' число секторов в кластере
Dim bytePerSec As Long  ' число байт в секторе
Dim freeClus As Long  ' число свободных кластеров
Dim totalClus As Long  ' общее число кластеров
Dim retval As Long  ' возвращаемое значение

retval = GetDiskFreeSpace("c:\", secPerClus, bytePerSec, freeClus, totalClus)

 ' Отображаем информацию
Debug.Print "Свободно:"; freeClus * secPerClus * bytePerSec; "байт"
Debug.Print "Общий объем:"; totalClus * secPerClus * bytePerSec; "байт"

Схожие функции
GetDiskFreeSpaceEx
Категория
Файлы

В начало.

последнее обновление: Февраль 29, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:GetDoubleClickTime

Функция GetDoubleClickTime

Declare Function GetDoubleClickTime Lib "user32.dll" () As Long

Платформа: Win 95/98, Win NT

GetDoubleClickTime определяет максимальный промежуток временив миллисекундах между двумя щелчками мыши,которые обрабатываются системой как двойной щелчок.

Пример:

' Показываем промежуток времени
' между двумя щелчками мыши в событии DoubleClick

Dim doubletime As Long

doubletime = GetDoubleClickTime()  ' получаем значение промежутка времени в миллисекундах
Debug.Print doubletime; "миллисекунд"

Схожие функции: SetDoubleClickTime
Категория Мышь
В начало.

последнее обновление: Февраль 13, 2000


Функции Windows API:GetDriveType

Функция GetDriveType

Declare Function GetDriveType Lib "kernel32.dll" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Платформа: Win 95/98, Win NT

GetDriveType определяет типы дисков на компьютере.Это могут быть жесткие диски,флоппи-диски, CD-ROM и др. Функция возвращает тип диска.Если 0-значит ошибка,если 1-значит диск не существует,другие возвращаемые значения означают следующее:

DRIVE_CDROM = 5
CD-ROM.
DRIVE_FIXED = 3
Жесткий диск.
DRIVE_RAMDISK = 6
RAM-диск.
DRIVE_REMOTE = 4
Сетевой диск.
DRIVE_REMOVABLE = 2
Сменный диск(напр.дискетта или любой сменный диск).
nDrive
Корневой каталог диска,как "c:\" или "a:\"

Пример

' Определяем тип диска D:
Dim drivetype As Long

drivetype = GetDriveType("d:\")
If drivetype = 1 Then Debug.Print "Диск D:\ не существует."
If drivetype = DRIVE_REMOVABLE Then Print "Диск D:\ сменный диск."
If drivetype = DRIVE_FIXED Then Print "Диск D:\ жесткий диск."
If drivetype = DRIVE_CDROM Then Print "Диск D:\ CD-ROM."
' и т.д.
Категория
Файлы

В начало.

последнее обновление: Февраль 05, 2000


Функции Windows API:GetFileAttributes

Функция GetFileAttributes

Declare Function GetFileAttributes Lib "kernel32.dll" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long

Платформа:

Win 95/98, Win NT

GetFileAttributes возвращает атрибуты файла или папки.При ошибке возвращает 0,если файл или папка не найдены,то возвращается -1.В других случаях,возвращаемое значение принимает следующие флаги:

FILE_ATTRIBUTE_ARCHIVE = &H20
Архивный файл.
FILE_ATTRIBUTE_COMPRESSED = &H800
Сжатый файл.
FILE_ATTRIBUTE_DIRECTORY = &H10
Имя папки.
FILE_ATTRIBUTE_HIDDEN = &H2
Скрытый файл или папка.Обычно его не видно пользователю.
FILE_ATTRIBUTE_NORMAL = &H80
Файл не имеет атрибутов(нельзя комбинировать с другими флагами).
FILE_ATTRIBUTE_READONLY = &H1
Файл только для чтения.
FILE_ATTRIBUTE_SYSTEM = &H4
Системный файл.Является частью операционной системы.
lpFileName
Полное имя файла или папки.

Пример

' показываем атрибуты файла c:\autoexec.bat
Dim attribs As Long

attribs = GetFileAttributes("C:\autoexec.bat")  ' узнаем атрибуты файла
If (attribs And FILE_ATTRIBUTES_ARCHIVE) <> 0 Then Debug.Print "Архивный"
If (attribs And FILE_ATTRIBUTES_HIDDEN) <> 0 Then Debug.Print "Скрытый"
If (attribs And FILE_ATTRIBUTES_READONLY) <> 0 Then Debug.Print "Только для чтения"
' и так далее....

Схожие функции

GetFileInformationByHandle, SetFileAttributes
Категория Файлы
В начало.

последнее обновление: Февраль 05, 2000


Функции Windows API:GetFileSize

Функция GetFileSize

Declare Function GetFileSize Lib "kernel32" (ByVal hFile As Long, lpFileSizeHigh As Long) As Long

Платформа: Win 95/98, Win NT

GetFileSize определяет размер файла.При ошибке возвращается -1.

hFile
дескриптор файла.Файл следует сначала открыть с помощью CreateFile(),используя флаг OPEN_EXISTING(чтобы проверить существование файла).
lpFileSizeHigh
Размер файла.

Пример:

' Определяем размер файла "C:\config.sys".

Dim filePointer As Long, fileSize As Long

' получаем дескриптор файла с помощью CreateFile
filePointer = CreateFile("c:\config.sys", GENERIC_READ Or GENERIC_WRITE, 0&, 0&, OPEN_EXISTING, _
                                FILE_ATTRIBUTE_NORMAL, 0&)
fileSize = GetFileSize(filePointer, 0&)

    Debug.Print "Размер файла:" fileSize
    'закрываем файл
    CloseHandle (filePointer)

Схожие функции: GetFileInformationByHandle
Категория Файлы
В начало.

последнее обновление: Февраль 06, 2000


Функции Windows API:GetFullPathName

Функция GetFullPathName

Declare Function GetFullPathName Lib "kernel32.dll" Alias "GetFullPathNameA" (ByVal lpFileName As String, ByVal nBufferLength As Long, ByVal lpBuffer As String, ByVal lpFilePart As String) As Long

Платформа: Win 95/98, Win NT

GetFullPathName возвращает полный путь к файлу. Функция возвращает 0 в случае ошибки,или длину строки в успешном случае.

lpFileName
Имя файла.
nBufferLength
Размер в символах lpBuffer.
lpBuffer
Строка
lpFilePart
???

Пример:

' определяем полное имя файла autoexec.bat
Dim buffer As String
Dim numchar As Long  ' длина буфера после вызова функции

ChDir "c:\"  ' выбираем папку
buffer = Space(255)  ' создаем место для приема строки
numchar = GetFullPathName("autoexec.bat", 255, buffer, "") font color="green"> ' помещаем строку в буфер
buffer = Left(buffer, numchar)  ' извлекаем имя файла
Debug.Print buffer  ' показываем результат
Схожие функции
GetShortPathName
Категория: Файлы

В начало.

Русский_Проект


Функции Windows API:GetKeyboardState

Функция GetKeyboardState

Declare Function GetKeyboardState Lib "user32.dll" (pbKeyState As Byte) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Не поддерживается.

GetKeyboardState отыскивает состояние каждой клавиши на клавиатуре и размещает информацию в массив. Каждый элемент массива с 256 элементами идентифицирует информацию относительно виртуальной клавиши, чей код виртуальной клавиши соответствует индексу элемента.На вашей клавиатуре нет 256 клавиш?Это сделано с прицелом на будущее. Если установлен бит &H1 , та клавиша выключена. Если установлен бит &H80, клавиша в настоящее время включена.

Примечание:Обратите внимание,что функции передается массив,указывая его первый элемент.

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.

Параметры

pbKeyState
Массив байтов с 256 элементами, который получает информацию состояния для всех виртуальных клавиш. Каждая клавиша идентифицирована элементом, соответствующим коду виртуальной клавиши. Windows NT, 2000: В дополнение к виртуальным клавишам, массив также получает информацию, способную различать левый и правый клавиши Ctrl, Alt, и SHIFT, которые помещены в массив в следующих индексах:
VK_LSHIFT = &HA0
Левый Shift.
VK_RSHIFT = &HA1
Правыйt Shift.
VK_LCONTROL = &HA2
Левый Ctrl.
VK_RCONTROL = &HA3
Правый Ctrl.
VK_LMENU = &HA4
Левый Alt.
VK_RMENU = &HA5
Правый Alt.

Пример

' Установим статус для каждой клавиши на клавиатуре
' на "не включено"
Dim keystates(0 To 255) As Byte  ' содержит статус всех клавиш в массиве
Dim c As Integer  ' счетчик
Dim retval As Long  ' возвращаемое значение

' Сначала, получим текущее состояние клавиатуры.
retval = GetKeyboardState(keystates(0))

' Теперь, установим бит для всех клавиш в 0.
For c = 0 To 255
  ' Удостоверимся,что бит &H1 не установлен.
  keystates(c) = keystates(c) And (Not &H1)
Next c

' Наконец, установим это к текущему состоянию клавиатуры.
retval = SetKeyboardState(keystates(0))

Схожие функции
GetKeyState, SetKeyboardState
Категория
Клавиатура

В начало

последнее обновление: Июнь 29, 2000


Функции Windows API:GetKeyState

Функция GetKeyState

Declare Function GetKeyState Lib "user32.dll" (ByVal nVirtKey As Long) As Integer

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

GetKeyState определяет текущее состояние клавиши. Функция находит, нажата ли клавиша в настоящее время или нет, и определяет, переключается ли клавиша в настоящее время.

Возвращаемое значение
Если установлен параметр &H1, клавиша переключается. Если установлен параметр &H80, то клавиша в данный момент нажата.

Параметры

nVirtKey
Код виртуальной клавиши. Windows NT, 2000: Это может быть один из следующих флажков, которые различают левый и правый Ctrl, Alt, и SHIFT:
Const VK_LSHIFT = &HA0
Левый Shift.
Const VK_RSHIFT = &HA1
Правый Shift.
Const VK_LCONTROL = &HA2
Левый Ctrl.
Const VK_RCONTROL = &HA3
Правый Ctrl.
Const VK_LMENU = &HA4
Левый Alt.
Const VK_RMENU = &HA5
Правый Alt.

Пример:

' Отобразим текущее состояние клавиши ENTER.
Dim keystate As Long  ' состояние клавиши

' Читаем текущее состояние клавиши ENTER.
keystate = GetKeyState(VK_RETURN)

' Отобразим состояние переключателя клавиши ENTER.
If (keystate And &H1) = &H1 Then
  Debug.Print "Клавиша ENTER в настоящее время переключается."
Else
  Debug.Print "Клавиша ENTER в настоящее время не переключается."
End If
' Нажимается ли Клавиша ENTER или нет.
If (keystate And &H80) = &H80 Then
  Debug.Print "Клавиша ENTER в настоящее время нажата."
Else
  Debug.Print "Клавиша ENTER сейчас не нажата."
End If

Схожие функции
GetAsyncKeyState, GetKeyboardState
Категория
Клавиатура

В начало.

последнее обновление: Июнь 13, 2000


Функции Windows API:GetLastError

Функция GetLastError

Declare Function GetLastError Lib "kernel32.dll" () As Long

GetLastError возвращает код ошибки ,который происходит при вызове последней вызываемой функцией.Большинство функций API просто возвращают номер кода ошибки, ничего не сообщая о характере ошибки. Эта функция возвращает универсальный код ошибки,определяя его тип.Обратите внимание,что многие функции устанавливают код ошибки в ноль,если функция сработала успешно,удаляя предыдущий код ошибки. Таким образом,нужно немедленно определять код ошибки сразу же при его возникновении.

Пример

' демонстрация обнаружения ошибки
 неверного определения дескриптора
Dim retval As Long  ' возвращаемое значение функции
Dim errorcode As Long  ' код ошибки

' делаем неправильное обращение к функциии ,используя
'неверный дескриптор
retval = CloseHandle(-1)  ' нет дескриптора -1!
If retval = 0 Then  '  возвращаемое значение будет равным 0 при возникновении ошибки
  errorcode = GetLastError()  ' находим код ошибки
  If errorcode = 6 Then Debug.Print "ОШИБКА: Неверный дескриптор"   ' ошибка 6 = Неверный дескриптор
End If
Схожие функции CommDlgExtendedError
Категория
Ошибки

В начало.

последнее обновление:Май 08, 2000


Функции Windows API:GetLocalTime

Функция GetLocalTime

Declare Sub GetLocalTime Lib "kernel32.dll" (lpSystemTime As SYSTEMTIME)

Платформа: Win 95/98, Win NT

GetLocalTime возвращает системное время и дату. Различные особенности времени и даты (месяц, день, час, минута, секунда и т.д.), до миллисекунды, сортируются в переменной lpSystemTime! Windows полагает, что "местное время" будет текущим временем системы.

lpSystemTime
Переменная для получения от компьютера времени и даты.

Пример:

' Показываем текущее время в формате месяц-день-год
Dim localtime As SYSTEMTIME

GetLocalTime localtime  ' получаем время и дата у компьютера
' Показываем дату
Debug.Print localtime.wMonth; "-"; localtime.wDay; "-"; localtime.wYear

Схожие функции: GetSystemTime
Категория Время
В начало.

последнее обновление: Февраль 10, 2000


Функции Windows API:GetLogicalDriveStrings

Функция GetLogicalDriveStrings

Declare Function GetLogicalDriveStrings Lib "kernel32.dll" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Платформа: Win 95/98, Win NT

GetLogicalDriveStrings определяет имеющие силу логические диски на компьютере и размещает их названия корневых каталогов в строку lpBuffer. Каждое имя корневого каталога в буфере отделено нулевым символом, и полными строковыми концами в двух нулевых символах. Например, если существуют только A: и C: , строка будет " a: \ (пустой указатель) c: \ (пустой указатель) (пустой указатель) ", где (пустой указатель) представляет нулевой символ. Функция возвращает 0, если произошла ошибка, или длина строки, помещенной в lpBuffer, если функция выполнена успешно.

nBufferLength
Длина строки в буфере lpBuffer.
lpBufferСтрока,которая получает имена всех логических дисков.

Пример:

' Перечисляем имена всех корневых каталогов. Так как каждый вход в строке берет
' Четыре символа (три для имени и один для пустого указателя), мы можем  рассчитать длину
'  строки. Это освобождает нас от проблем относительно пустых указателей.
Dim drivenames As String  ' получаем имена дисков
Dim thisdrive As String  ' буфер для имени диска
Dim c As Long  ' счетчик
Dim slength As Long  ' длина возвращаемой строки

' Создаем место в буфере для имен дисков.
drivenames = Space(255)  ' должно хватить
' Получаем имена всех дисков.
slength = GetLogicalDriveStrings(255, drivenames)
' считаем по 4 символа для извлечения имен каждого диска.
For c = 1 To slength Step 4  '
  thisdrive = Mid(drivenames, c, 3)  ' извлекаем 3-х символьную строку X:\ (где X-буква диска)
  Debug.Print thisdrive  ' показываем имена дисков
Next c

Схожие функции: GetLogicalDrives
Категория Файлы
В начало.

последнее обновление: Февраль 21, 2000


Функции Windows API:GetOEMCP

Функция GetOEMCP

Declare Function GetOEMCP Lib "kernel32" () As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.

GetOEMCP возвращает имя кодовую страницу DOS(OEM),установленную на компьютере

Возвращаемое значение

Функция возвращает OEM идентификатор кодовой страницы для системы или идентификатор,заданный по умолчанию,если не определена текущая кодовая страница.

OEM идентификаторы кодовой страницы.

Идентификатор | Значение
437 | MS-DOS United States
708 | Arabic (ASMO 708)
709 | Arabic (ASMO 449+, BCON V4)
710 | Arabic (Transparent Arabic)
720 | Arabic (Transparent ASMO)
737 | Greek (formerly 437G)
775 | Baltic
850 | MS-DOS Multilingual (Latin I)
852 | MS-DOS Slavic (Latin II)
855 | IBM Cyrillic (primarily Russian)
857 | IBM Turkish
860 | MS-DOS Portuguese
861 | MS-DOS Icelandic
862 | Hebrew
863 | MS-DOS Canadian-French
864 | Arabic
865 | MS-DOS Nordic
866 | MS-DOS Russian (former USSR)
869 | IBM Modern Greek
874 | Thai
932 | Japan
936 | Chinese (PRC, Singapore)
949 | Korean
950 | Chinese (Taiwan; Hong Kong SAR, PRC)
1361 | Korean (Johab)

Пример:

' Определяем кодовую страницу OEM.
MsgBox "OEMCP = " & GetOEMCP

Схожие функции
GetACP
Категория:
Доступ к параметрам системы

В начало.

последнее обновление: Июнь 09, 2000


Функции Windows API:GetOpenFileName

Функция GetOpenFileName

Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOPENFILENAME As OPENFILENAME) As Long

Платформа: Win 95/98, Win NT

GetOpenFileName открывает стандартное общее диалоговое окнo открытия файла.Вся нужная вам информация для передачи функции содержится в pOPENFILENAME.Заметьте,что функция не открывает файлы,а только открывает диалоговое окно и возвращает имя файла(файлов).Функция возвращает 0 в случае ошибки или если была нажата кнопка Отмена,в успешном случае возвращается 1.

pOPENFILENAME
Содержит параметры для открытия диалогового окна.Также получает возвращаемое имя файла или файлов и другую информацию.

Пример:

' Открываем общее диалоговое окно и ищем файлы *.txt
Dim filebox As OPENFILENAME  ' структура для управления диалоговым окном
Dim fname As String  ' возвращаемое имя файла
Dim retval As Long  ' возвращаемое значение

' Устанавливаем вид диалогового окна
filebox.lStructSize = Len(filebox)  ' размер структуры
filebox.hwndOwner = Form1.hWnd  ' дескриптор формы
filebox.lpstrTitle = "Сим-Сим,откройся"  ' текст для заголовка диалогового окна
' Здесь устанавливаем типы файлов
filebox.lpstrFilter = "Тексты" & vbNullChar & "*.txt" & vbNullChar & "Все файлы" & vbNullChar & "*.*" & vbNullChar & vbNullChar
filebox.lpstrFile = Space(255)  ' создаем буфер для приема пути и имени файла
filebox.nMaxFile = 255  ' длина буфера
filebox.lpstrFileTitle = Space(255)  ' создаем буфер для приема имени файла
filebox.nMaxFileTitle = 255  ' длина для этого буфера
' отображаем существующие скрытые и только для чтения файлы
filebox.flags = OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY

' Запускаем общее диалоговое окно
retval = GetOpenFileName(filebox)
If retval <> 0 Then  ' если все нормально
  ' удаляем нулевой символ из имени файла
  fname = Left(filebox.lpstrFile, InStr(filebox.lpstrFile, vbNullChar) - 1)
  Debug.Print "Вы выбрали файл: "; fname
End If

Схожие функции: GetSaveFileName
Категория Общее диалоговое окно
В начало.

последнее обновление: Январь 13, 2000


Функции Windows API:GetParent

Функция GetParent

Declare Function GetParent Lib "user32.dll" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

GetParent возвращает дескриптор родительского окна. Например, родительским окном для кнопки обычно является окно формы.В успешном случае функция возвращает дескриптор родительского окна,в случае ошибки -возвращается 0.

hwnd
Дескриптор окна.

Пример:

' Определяем окно какого фрейма является родительским для кнопки- Frame1 или Frame2

Dim parenthwnd As Long  ' родительское окно

parenthwnd = GetParent(Command1.hWnd)  ' получаем дескриптор родительского окна
If parenthwnd = Frame1.hWnd Then Debug.Print "Кнопка внутри фрейма Frame 1."
If parenthwnd = Frame2.hWnd Then Debug.Print "Кнопка внутри фрейма Frame 2."

Схожие функции: SetParent
Категория Окна
В начало.

последнее обновление: Февраль 22, 2000


Функции Windows API:GetPixel

Функция GetPixel

Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal nXPos As Long, ByVal nYPos As Long) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

GetPixel возвращает значение RGB пиксела в заданный координатах в контексте устройства.

Возвращаемое значение

В случае ошибки функция возвращает &HFFFF. В успешном случае функция возвращает значение RGB пиксела в заданной точке.

Параметры

hdc
Дескриптор контекста устройства.
nXPos
Координата x точки для определения цвета.
nYPos
Координата y точки для определения цвета.

Пример

' Определяем значение цвета точки
' с координатами (75,100).
Dim rgbVal As Long  ' значение RGB точки

' Определяем цвет на форме в точке (75,100).
rgbVal = GetPixel(Form1.hDC, 75, 100)

Debug.Print "Значение RGB точки" & rgbVal

Схожие функции
SetPixel, SetPixelV
Категория
Графика

В начало

последнее обновление: Март 13, 2000


Функции Windows API:GetPrivateProfileString

Функция GetPrivateProfileString

Declare Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Платформа:

Win 95/98, Win NT

GetPrivateProfileString читает строковые значения из INI-файлов. Параметры,передаваемые функции, определяют значение для чтения. Функция всегда возвращает длину в символах строки, помещенной в переменную lpReturnedString. Если выполнение функции было успешно, чтение строки от INI файла будет помещено в lpReturnedString. Если нет, это вместо этого получит строку, данную как lpDefault. Обратите внимание, что поддержка INI -файлов обеспечивается в Windows для совместимости; для хранения информации используйте системный реестр.

Параметры

lpApplicationName
Раздел-имя,заключенное в квадратные скобки [] и группирующее ключи и значения.
lpKeyName
Значение ключа.Ключ должен быть уникальным только внутри своего раздела.
lpDefault
Возвращаемое значение, если правильное(допустимое) значение не может читаться.
lpReturnedString
Строка фиксированной длины, получаемая при чтении любой строки файла или lpDefault.
nSize
Длина в символах переменной lpReturnedString.
lpFileName
Имя INI-файла для чтения.

Пример

'скопируйте файл  oeminfo.ini
'в папку C:\
'читаем значение "Manufacturer" в секции [General]
'  INI-файла oeminfo.ini
' Значение  Manufacturer  "Русский_Проект".
Dim uname As String  ' значение ключа,получаемое из файла
Dim slength As Long  ' длина получаемой строки

uname = Space(255)  ' обеспечиваем достаточно места для функции, чтобы поместить значение в буфер
' читаем INI-файл
slength = GetPrivateProfileString("general", "Manufacturer", "anonymous", uname, 255, "C:\Мои документы\oeminfo.ini")
uname = Left(uname, slength)  ' извлекаем нужную строчку из буфера
Debug.Print "Производитель: "; uname

Схожие функции

GetPrivateProfileInt, GetProfileString, WritePrivateProfileString

Категория:

Файлы INI

В начало.

последнее обновление: Январь 25, 2000


Функции Windows API:GetRgnBox

Функция GetRgnBox

Declare Function GetRgnBox Lib "gdi32.dll" (ByVal hRgn As Long, lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

GetRgnBox определяет прямоугольник, ограничивающий данный регион. Прямоугольник ограничения - самый маленький возможный прямоугольник, который полностью окружает регион. Прямоугольник ограничения помещен в структуру lpRect . Функция возвращает 0 в случае ошибки, или точно один из следующих флажков, определяющих форму региона:

COMPLEXREGION = 3
Область не пуста, но не прямоугольна.
NULLREGION = 1
Область пуста, то есть- пустой указатель.
SIMPLEREGION = 2
Область прямоугольна.
hRgn
Дескриптор региона, чтобы получить прямоугольник ограничения.
lpRect
Получает координаты прямоугольника ограничения региона.

Пример:

' Заполним треугольную область на Form1 темным серым цветом, и заполним ограничивающий
' прямоугольник (позади него)  светло-серым.
Dim triangle(0 To 2) As POINTAPI  ' вершина треугольной области
Dim hRgn As Long  ' дескриптор треугольной области
Dim hLightBrush As Long, hDarkBrush As Long  ' дескрипторы к двум кистям
Dim bounding As RECT  ' ограничительный прямоугольник региона
Dim retval As Long  ' возвращаемое значение
'Устанавим BackColor формы в красный цвет
'Создаем треугольную область.
Form1.BackColor=vbRed
triangle(0).x = 150: triangle(0).y = 100  ' точка #1: (150,100)
triangle(1).x = 200: triangle(1).y = 150  ' точка #2: (200,150)
triangle(2).x = 175: triangle(2).y = 200  ' точка #3: (175,200)
hRgn = CreatePolygonRgn(triangle(0), 3, ALTERNATE)  ' Создаем регион
' Получим дескрипторы к светлому и темному серым твердым кистям.
hLightBrush = GetStockObject(LTGRAY_BRUSH)
hDarkBrush = GetStockObject(DKGRAY_BRUSH)

' Вычисляем ограничительный прямоугольник треугольной области.
retval = GetRgnBox(hRgn, bounding)  ' теперь вычерчиваем ограничительный прямоугольник,
' заполняя ограничительный прямоугольник светло-серым,а регион темно-серым цветом.
retval = FillRect(Form1.hDC, bounding, hLightBrush)
retval = FillRgn(Form1.hDC, hRgn, hDarkBrush)

' Удаляем регион для освобождения ресурсов.
retval = DeleteObject(hRgn)

Категория Регионы

В начало.

последнее обновление: Июнь 21, 2000


Функции Windows API:GetShortPathName

Функция GetShortPathName

Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long

Платформа: Win 95/98, Win NT

GetShortPathName преобразует длинное имя файла в короткое(8.3) имя. Например,имя файла ReallyLongFile.txt будет преобразовано в REALLY~1.TXT. Короткое имя файла передается в переменную строку lpShortPath. Функция возвращает длину строки, или 0 в случае ошибки.

lpszLongPath
Полный путь и имя файла для преобразования.
lpszShortPath
Строка,содержащая короткое имя файла.
cchBuffer
Размер в символах lpszShortPath.

Пример:

' Преобразуем имя файла  C:\My Documents\ReadMeFirst.txt
Dim shortname As String  ' строка для короткого имени
Dim slength As Long  ' длина короткого имени файла

shortname = Space(255)  ' создаем место в буфере для короткого имени файла
slength = GetShortPathName("C:\My Documents\ReadMeFirst.txt", shortname, 255)
shortname = Left(shortname, slength)  ' извлекаем строку из буфера
Debug.Print "Короткое имя: "; shortname

Схожие функции: GetFullPathName
Категория Файлы
В начало

последнее обновление: Февраль 26, 2000


Функции Windows API:GetSystemDirectory

Функция GetSystemDirectory

Declare Function GetSystemDirectory Lib "kernel32.dll" Alias "GetSystemDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Платформа

Win 95/98, Win NT

GetSystemDirectory возвращает путь системного каталога Windows. В системном каталоге хранятся очень важные файлы,в том числе API *.dll. Этот путь,как правило "C:\Windows\System",но не забывайте,что каталог самой Windows может называться,например Win98. Путь к системному каталогу содержится в строковой переменной lpBuffer. Функция в успешном случае возвращает длину возвращаемой строки или 0 в случае ошибки.

Параметры

lpBuffer
Строка,содержащая путь к системному каталогу
nSize
Длина lpBuffer в символах.

Пример

' показываем путь к системному каталогу
Dim sysdir As String  ' путь к системному каталогу
Dim slength As Long  ' длина возвращаемой строки

sysdir = Space(255)  ' отводим место для получения строки в буфере
slength = GetSystemDirectory(sysdir, 255)
sysdir = Left(sysdir, slength)  ' получаем имя из буфера
Debug.Print "Путь системного каталога: "; sysdir

Схожие функции

GetWindowsDirectory

Категория

Системная информация
В начало.

последнее обновление: Январь 25, 2000


Функции Windows API:GetSystemMetrics

Функция GetSystemMetrics

Declare Function GetSystemMetrics Lib "user32.dll" (ByVal nIndex As Long) As Long

Платформа: Win 95/98, Win NT

GetSystemMetrics возвращает информацию относительно различных параметров в Windows. Большинство их имеет дело с размерами различных объектов(экрана, значков, курсоров, и т.д). Эта функция обеспечивает информацию относительно системы.Возвращаемое значение функции зависит от значения, указанного для nIndex. Имейте в виду, что все размеры (ширина и высота) измеряются в пикселах. Также обратите внимание, что некоторые параметры имеют слегка различные значения между Win NT и Win 95/98.

nIndex
Точно один из следующих флажков, определяющих определенную часть информации:
SM_ARRANGE = 56
только для Win 95/98: Возвращает метод отображения свернутых окон. Возвращаемое значение - комбинация двух из следующих флажков, одно определяет исходную позицию для свернутых значков и другое определяет направление, в котором новые значки будут добавлены:
ARW_BOTTOMLEFT = 0
Начало позиции, помещающее значки в левой нижней части экрана.
ARW_BOTTOMRIGHT = 1
Начало позиции, помещающее значки в правой нижней части экрана.
ARW_DOWN = 4
Добавляет новые значки ниже существующих.
ARW_HIDE = 8
Не размещает значки на экране (то есть, скрывает их).
ARW_LEFT = 0
Добавляет новые значки слева от существующих.
ARW_RIGHT = 4
Добавляет новые значки справа от существующих.
ARW_STARTRIGHT = 1
Аналогично ARW_BOTTOMRIGHT.
ARW_STARTTOP = 2
Аналогично ARW_TOPLEFT.
ARW_TOPLEFT = 2
Начало позиции, помещающее значки в верхнем левом углу экрана.
ARW_TOPRIGHT = 3
Начало позиции, помещающее значки в верхнем правом углу экрана.
ARW_UP = 0
Добавляет новые значки выше существующих.
SM_CLEANBOOT = 67
только для Win 95/98: Возвращает значение, определяющее, как компьютер был загружен. 0 - normal bootup, 1- fail-safe (a.k.a. SafeBoot) bootup, и 2 значит a fail-safe bootup with the network installed.
SM_CMETRICS = 44
только для Win 95/98: Возвращает количество параметров системы.
SM_CMOUSEBUTTONS = 43
Возвращает число кнопок на установленной мыши, или 0, если мышь не установлена.
SM_CXBORDER = 5
Win NT: Возвращает ширину границы окна. Win 95/98: Возвратите ширину отдельной границы окна.
SM_CXCURSOR = 13
Win NT: Возвращает ширину курсора. Win 95/98: Возвращает ширину стандартного точечного рисунка курсора.
SM_CXDLGFRAME = 7
только для Win NT: Возвращает ширину рамки окна, имеющей стиль диалогового окна.
SM_CXDOUBLECLK = 36
Ширина прямоугольника, в пределах которого оба щелчка мыши должны быть опознаны,как двойной щелчок.
SM_CXDRAG = 68
Возвращает минимальную ширину,при которой курсор должен двигаться, чтобы начать операцию перетаскивания.
SM_CXEDGE = 45
только для Win 95/98: Возвращает ширину 3D границы окна.
SM_CXFRAME = 32
только для Win NT: Возвращает ширину границы окна изменяемого размера.
SM_CXFULLSCREEN = 16
Возвращает ширину клиентской области полноэкранного окна.
SM_CXHSCROLL = 21
только для Win 95/98: Возвращает ширину точечного рисунка стрелки на горизонтальной полосе прокрутки.
SM_CXHTHUMB = 10
Возвращает ширину горизонтального бегунка полосы прокрутки.
SM_CXICON = 11
Возвращает заданную по умолчанию ширину значка.
SM_CXICONSPACING = 38
Win NT: Возвращает ширину ячейки для позиционирования значков. Win 95/98: Возвращает ширину ячейки сетки для элементов в виде крупных значков.
SM_CXMAXIMIZED = 61
только для Win 95/98: Возвращает заданную по умолчанию ширину развернутого окна.
SM_CXMAXTRACK = 59
только для Win 95/98: Возвращает заданную по умолчанию максимальную ширину,если пользователю разрешено изменять размеры окна.
SM_CXMENUCHECK = 71
только для Win 95/98: Возвращает ширину заданного по умолчанию точечного рисунка метки меню.
SM_CXMENUSIZE = 54
только для Win 95/98: Возвращает ширину кнопки строки меню.
SM_CXMIN = 28
Возвращает минимальную ширину окна.
SM_CXMINIMIZED = 57
только для Win 95/98: Возвращает ширину нормально свернутого окна.
SM_CXMINSPACING = 47
только для Win 95/98: Возвращает ширину прямоугольника ячейки сетки используя позицию свернутого окна.
SM_CXMINTRACK = 34
только для Win 95/98: Возвращает заданную по умолчанию минимальную ширину
SM_CXSCREEN = 0
Возвращает ширину экрана.
SM_CXSIZE = 30
Win NT: Возвращает ширину точечного рисунка в заголовке. Win 95/98: Возвращает ширину кнопки заголовка.
SM_CXSIZEFRAME = 32
только для Win 95/98: Возвращает ширину толстой рамки окна.
SM_CXSMICON = 49
только для Win 95/98: Возвращает рекомендуемую ширину для маленьких значков.
SM_CXSMSIZE = 52
только для Win 95/98: Возвращает ширину маленькой надписи кнопки.
SM_CXVSCROLL = 2
только для Win 95/98: Возвращает ширину вертикальной полосы прокрутки.
SM_CYBORDER = 6
Win NT: Возвращает высоту границы окна. Win 95/98: Возвращает высоту отдельной границы окна.
SM_CYCAPTION = 4
Возвращает высоту нормальной области надписи.
SM_CYCURSOR = 14
Win NT: Возвращает высоту курсора. Win 95/98: Возвращает высоту стандартного точечного рисунка курсора.
SM_CYDLGFRAME = 8
только для Win NT: Возвращает высоту рамки окна, имеющей стиль диалога.
SM_CYDOUBLECLK = 37
Возвращает высоту прямоугольника, в пределах которого оба щелчка мыши должны быть опознаны как двойной щелчок.
SM_CYDRAG = 69
Возвращает минимальную высоту,на которую курсор должен сдвинуться, чтобы начать операцию перетаскивания.
SM_CYEDGE = 46
только для Win 95/98: Возвращает высоту трехмерной границы окна.
SM_CYFRAME = 33
только для Win NT: Возвращает высоту границы окна изменяемого размера.
SM_CYFULLSCREEN = 17
Возвращает высоту клиентской области полноэкранного окна.
SM_CYHSCROLL = 3
только для Win 95/98: Возвращает высоту горизонтальной полосы прокрутки.
SM_CYICON = 12
Возвращает заданную по умолчанию высоту значка.
SM_CYICONSPACING = 39
Win NT: Возвращает высоту ячейки для позиционирования значков. Win 95/98: Возвращает высоту ячейки сетки для элементов в представлении в виде крупных значков.
SM_CYKANJIWINDOW = 18
Возвращает высоту окна Kanji (для версий набора символов с двойным байтом Windows).
SM_CYMAXIMIZED = 62
только для Win 95/98: Возвращает заданную по умолчанию высоту развернутого окна.
SM_CYMAXTRACK = 60
только для Win 95/98: Возвращает заданную по умолчанию максимальную высоту,если пользователю позволено изменять размеры окна.
SM_CYMENU = 15
Возвращает высоту отдельной строки меню.
SM_CYMENUCHECK = 72
только для Win 95/98: Возвращает высоту заданного по умолчанию точечного рисунка метки меню.
SM_CYMENUSIZE = 55
только для Win 95/98: Возвращает высоту кнопки строки меню.
SM_CYMIN = 29
Возвращает минимальную высоту окна.
SM_CYMINIMIZED = 58
только для Win 95/98: Возвращает высоту нормально свернутого окна.
SM_CYMINSPACING = 48
только для Win 95/98: Возвращает высоту прямоугольника ячейки сетки используемой для позиционирования свернутых окон.
SM_CYMINTRACK = 35
только для Win 95/98: Возвращает заданную по умолчанию минимальную высоту, если пользователю позволено изменять размеры окна.
SM_CYSCREEN = 1
Возвращает высоту экрана.
SM_CYSIZE = 31
Win NT: Возвращает высоту точечного рисунка области заголовка. Win 95/98: Возвращает высоту надписи кнопки.
SM_CYSIZEFRAME = 33
только для Win 95/98: Возвращает высоту толстой рамки окна.
SM_CYSMCAPTION = 51
только для Win 95/98: Возвращает высоту маленькой области заголовка.
SM_CYSMICON = 50
только для Win 95/98: Возвращает рекомендуемую высоту для маленьких значков.
SM_CYSMSIZE = 53
только для Win 95/98: Возвращает высоту кнопки маленькой надписи.
SM_CYVSCROLL = 20
только для Win 95/98: Возвращает высоту точечного рисунка стрелки на вертикальной полосе прокрутки.
SM_CYVTHUMB = 9
Возвращает высоту вертикального бегунка полосы прокрутки.
SM_DBCSENABLED = 42
Возвращает ненулевое значение, если версия набора символов с двойным байтом USER.EXE установлена, 0 если нет.
SM_DEBUG = 22
Возвращает ненулевое значение, если версия отладки USER.EXE установлена, 0 если нет.
SM_MENUDROPALIGNMENT = 40
Возвращает ненулевое значение, если всплывающие меню появляются справа, 0 если слева.
SM_MIDEASTENABLED = 74
Возвращает ненулевое значение, если система использует еврейские и арабские языки, 0 если нет.
SM_MOUSEPRESENT = 19
Возвращает ненулевое значение, если мышь установлена и присутствует, 0 если нет.
SM_NETWORK = 63
Установка &H1 бит возвращаемого значения, если сеть установлена. Все другие биты возвращаемого значения зарезервированы и неопределенны.
SM_PENWINDOWS = 41
Return a non-zero value if the Microsoft Windows for Pen computing extensions are installed, 0 if not.
SM_SECURE = 44
Возвращает ненулевое значение, если защита присутствует и активна, 0 если нет.
SM_SHOWSOUNDS = 70
Возвращает ненулевое значение, если приложение показывает визуальную команду вызова программы для всех звуков, 0 если нет.
SM_SLOWMACHINE = 73
Возвращает ненулевое значение, если система имеет медленный процессор, 0 если нет.
SM_SWAPBUTTON = 23
Возвращает ненулевое значение, если левые и правые кнопки мыши поменялись, 0 если нет.

Пример:

' Отобразим разрешающую способность (размер) экрана и некоторую информацию относительно
' конфигурации окон.
Dim xres As Long, yres As Long  ' получим расширения экрана x и y
Dim hasmouse As Long, numbuttons As Long  ' Узнаем,присутствует ли мышка и число ее кнопок

' Отобразим разрешение экрана - то есть, ширину и высоту экрана.
xres = GetSystemMetrics(SM_CXSCREEN)
yres = GetSystemMetrics(SM_CYSCREEN)
Debug.Print "Экран имеет "; xres; "пикселов в ширину и "; yres; "пикселов в высоту."

' Отобразим число кнопок на мыши, если мышь присутствует.
hasmouse = GetSystemMetrics(SM_MOUSEPRESENT)
numbuttons = GetSystemMetrics(SM_CMOUSEBUTTONS)
If hasmouse = 0 Then
  Debug.Print "Мышь не установлена."
Else
  Debug.Print "Мышь с "; numbuttons; "кнопками."
End If

Схожие функции: SystemParametersInfo
Категория Доступ к параметрам системы

В начало

последнее обновление: Июнь 21, 2000


Функции Windows API:GetSystemTime

Функция GetSystemTime

Declare Sub GetSystemTime Lib "kernel32.dll" (lpSystemTime As SYSTEMTIME)

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

GetSystemTime возвращает текущее системные дату и время и передает эти значения структуре SYSTEMTIME. Время всегда показывается по Гринвичу,а не местное время.

Параметры

lpSystemTime
Получает текущее системные дату и время.

Пример

' Показываем текущее время от нулевого меридиана
Dim utctime As SYSTEMTIME

GetSystemTime utctime
Debug.Print "Время по Гринвичу"; utctime.wHour; ":"; utctime.wMinute; ":"; utctime.wSecond

Схожие функции
GetLocalTime, GetSystemTimeAsFileTime, SetSystemTime
Категория
Время

В начало.

последнее обновление: Май 11, 2000


Функции Windows API:GetTempPath

Функция GetTempPath

Declare Function GetTempPath Lib "kernel32.dll" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

Платформа: Win 95/98, Win NT

GetTempPath определяет временную папку Windows по умолчанию. Временная папка-это место,где создаются временные файлы,используемые различными программами в некоторых целях.Как правило,временной папкой служит C:\Windows\Temp . Путь к папке передается в переменную строку lpBuffer. Функция возвращает длину строки,возвращенной функцией в успешном случае и 0 в случае ошибки.

nBufferLength
Длина в символах lpBuffer
lpBuffer
Строка,содержащая путь к временной папке.

Пример:

' Определяем путь временной папки
Dim temppath As String  ' имя пути временной папки
Dim slength As Long  ' длина строки для пути

' Определяем путь для временных файлов
temppath = Space(255)  ' создаем буфер для пути
slength = GetTempPath(255, temppath)  ' узнаем путь
temppath = Left(temppath, slength)  ' извлекаем данные из переменной

Debug.Print "Имя временной папки: "; temppath

Схожие функции: GetTempFileName
Категория Системная информация
В начало.

последнее обновление: Февраль 14, 2000


Функции Windows API:GetUserName

Функция GetUserName

Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Платформа

Win 95/98, Win NT

GetUserName возвращает имя пользователя. Имя пользователя содержится в строке lpBuffer. Фукция также передает размер возвращаемой строки в переменную nSize. Функция возвращает 0 в случае ошибки, и значение,отличное от нуля в успешном случае.

Параметры

lpBuffer
Строка,содержащая имя пользователя.
nSize
Длина строки,передаваемой функции.

Пример

Dim username As String  ' имя пользователя
Dim slength As Long  ' длина строки
Dim retval As Long  ' возвращаемое значение

 ' отводим место для получения строки в буфере
username = Space(255)
slength = 255
' получаем имя пользователя
 ' slength сейчас является длиной возвращаемой строки
retval = GetUserName(username, slength)
' извлекаем информацию из буфера,отбрасывая Null
username = Left(username, slength - 1)

Debug.Print "Имя пользователя "; username

Категория

Системная информация
В начало.

последнее обновление: Январь 25, 2000


Функции Windows API:GetVersionEx

Функция GetVersionEx

Declare Function GetVersionEx Lib "kernel32.dll" Alias "GetVersionExA" (lpVersionInformation As OSVERSIONINFO) As Long

Платформа: Win 95/98, Win NT

GetVersionEx определяет тип операционной системы,номерах основной и дополнительной версий,номере сборки и Service Pack.Информация о версии передается в переменную lpVersionInformation.Функция возвращает 0 в случае ошибки,и 1 в успешном случае.

lpVersionInformation
Информация о версии операционной системы Windows.

Пример:

' Определяем номера основной,  дополнительной версий Windows и номер сборки

Dim os As OSVERSIONINFO  ' информация о версии
Dim retval As Long  'возвращаемое значение

os.dwOSVersionInfoSize = Len(os)  ' устанавливаем размер структуры
retval = GetVersionEx(os)  ' читаем информацию о версии Windows
Debug.Print "Версия Windows:"; os.dwMajorVersion; "."; os.dwMinorVersion; os.dwBuildNumber

Категория Системная информация
В начало.

последнее обновление: Февраль 17, 2000


Функции Windows API:GetVolumeInformation

Функция GetVolumeInformation

Declare Function GetVolumeInformation Lib "Kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long) As Long

Платформа:

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Не поддерживается.

GetVolumeInformation определяет серийный номер ,метку диска и его файловую систему.Если Вы пытаетесь получить информацию относительно дисковода для гибких дискет, который не имеет гибкого диска или CD-ROM,в котором нет компакт-диска, система отображает окно с сообщением,что нужно вставить гибкий диск или компакт-диск. Чтобы предотвратить систему от отображения этого окна сообщений, вызовите функцию SetErrorMode с SEM_FAILCRITICALERRORS.В случае ошибки,функция возвращает 0(используйте GetLastError для получения кода ошибки),в успешном случае функция возвращает значение отличное от 0.

lpRootPathName
Корневой каталог диска,например "c:\" или "a:\"
lpVolumeNameBuffer
Буфер, который получает имя указанного диска
nVolumeNameSize
Длину буфера в символах. Этот параметр игнорируется, если буфер пуст.
lpVolumeSerialNumber
Указатель на переменную, которая получает серийный номер диска. Этот параметр может быть НУЛЕВОЙ(NULL), если серийный номер не требуется.Windows 95/98: Если диск является сетевым- серийный номер не будет возвращен.
lpMaximumComponentLength
Переменная, которая получает максимальную длину в символах компонента имени файла, поддержанного указанной файловой системой. Компонент имени файла - та часть имени файла между наклонными чертами влево. Значение, сохраненное в переменной, указанной lpMaximumComponentLength используется, чтобы указать, что длинные имена поддерживаются указанной файловой системой. Например, для файловой системы FAT, поддерживающей длинные имена, функция сохраняет значение 255, скорее чем предыдущие 8.3 . Длинные имена могут также поддерживаются
lpFileSystemFlags
Переменная, которая получает флажки, связанные с указанной файловой системой. Возможны любые комбинации следующих флажков; однако, FS_FILE_COMPRESSION и FS_VOL_IS_COMPRESSED взаимоисключающий: FS_CASE_IS_PRESERVED The file system preserves the case of file names when it places a name on disk. FS_CASE_SENSITIVE The file system supports case-sensitive file names. FS_UNICODE_STORED_ON_DISK The file system supports Unicode in file names as they appear on disk. FS_PERSISTENT_ACLS The file system preserves and enforces ACLs. For example, NTFS preserves and enforces ACLs, and FAT does not. FS_FILE_COMPRESSION The file system supports file-based compression. FS_VOL_IS_COMPRESSED The specified volume is a compressed volume; for example, a DoubleSpace volume. FILE_NAMED_STREAMS The file system supports named streams. FILE_SUPPORTS_ENCRYPTION The file system supports the Encrypted File System (EFS). FILE_SUPPORTS_OBJECT_IDS The file system supports object identifiers. FILE_SUPPORTS_REPARSE_POINTS The file system supports reparse points. FILE_SUPPORTS_SPARSE_FILES The file system supports sparse files. FILE_VOLUME_QUOTAS The file system supports disk quotas.
lpFileSystemNameBuffer
Указатель на буфер, который получает название файловой системы (типа FAT или NTFS).
nFileSystemNameSize
Определяет длину в символах буфера названий файловых систем. Этот параметр игнорируется, если буфер названий файловых систем не указан.

Пример:

  Dim Serial As Long, VName As String, FSName As String    'Create buffers
VName = String$(255, Chr$(0))
FSName = String$(255, Chr$(0))
'получаем информацию о диске
GetVolumeInformation "C:\", VName, 255, Serial, 0, 0, FSName, 255
    'Strip the extra chr$(0)'s
    VName = Left$(VName, InStr(1, VName, Chr$(0)) - 1)
    FSName = Left$(FSName, InStr(1, FSName, Chr$(0)) - 1)
Debug.Print "Имя диска "; VName
Debug.Print "Файловая система "; FSName
Debug.Print "Серийный номер диска "; Trim(Str$(Serial))

Категория Системная информация
В начало.

последнее обновление: Март 01, 2000


Функции Windows API:GetWindowRect

Функция GetWindowRect

Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

GetWindowRect читает размер и позицию окна. Эта информация помещена в переменную lpRect. Прямоугольник получает координаты левых верхних и нижних правых углов окна. Функция возвращает 0 в случае ошибки, или 1 в успешном случае.

hwnd
Дескриптор окна для чтения позиции и размера окна.
lpRect
Переменная, которая получает координаты левых верхних и нижних правых углов окна.

Пример:

'  Отобразим ширину и высоту окна Form1
'  ширина и высота могут быть рассчитаны от координат, возвращенных в прямоугольнике.
Dim r As RECT  ' получаем прямоугольник окна
Dim retval As Long  ' возвращаемое значение

retval = GetWindowRect(Form1.hWnd, r)  ' устанавливаем r равным прямоугольнику окна Form1
Debug.Print "Ширина ="; r.Right - r.Left
Debug.Print "Высота ="; r.Bottom - r.Top

Схожие функции: MoveWindow, SetWindowPos
Категория Окна

В начало

последнее обновление: Апрель 26, 2000


Функции Windows API:GetWindowsDirectory

Функция GetWindowsDirectory

Declare Function GetWindowsDirectory Lib "kernel32.dll" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Платформа

Win 95/98, Win NT

GetWindowsDirectory возвращает путь к папке Windows. Обычно,это "C:\Windows",но может быть,например "D:\win98". Путь передается в строковую переменную lpBuffer. Функция в успешном случае возвращает длину возвращаемой строки или 0 в случае ошибки.

lpBuffer
Строка,содержащая путь к папке Windows
nSize
Длина lpBuffer в символах.

Пример

' Показывем путь папки Windows
Dim windir As String  ' получаем путь папки Windows
Dim slength As Long  ' получаем длину возвращаемой строки

windir = Space(255)   ' отводим место для получения строки в буфере
slength = GetWindowsDirectory(windir, 255)  ' узнаем путь папки
windir = Left(windir, slength)   ' получаем имя из буфера
Debug.Print "Папки Windows: "; windir
Схожие функции
GetSystemDirectory
Категория
Системная информация

В начало.

последнее обновление: Январь 25, 2000


Функции Windows API:GetWindowText

Функция GetWindowText

Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long

Платформа: Win 95/98, Win NT

GetWindowText читает текст заголовков окна,если он имеется.Если окно является элементом управления,функция возвращает его текст. Функция может работать с любым окном,а не только в ваших программах. Текст содержится в переменной строке lpString. В успешном случае функция возвращает длину строки,в случае ошибки-возвращается 0.

hwnd
Дескриптор окна .
lpString
Переменная строка,содержащая текст заголовка окна.
cch
Длина в символах lpString.

Пример:

' Читаем текст заголовка формы Form1
Dim titlebar As String  ' текст заголовка
Dim slength As Long  ' длина возвращаемой строки

titlebar = String$(256, " ")  ' создаем место для текста и нулевого символа
slength = GetWindowText(Form1.hWnd, titlebar, 255)  ' получаем текст заголовка
titlebar = Left$(titlebar, InStr(titlebar, vbNullChar) - 1)  ' извлекаем информацию из буфера
Debug.Print "Заголовок окна: "; titlebar

Схожие функции: GetWindowTextLength, SetWindowText
Категория Окна
В начало.

последнее обновление: Февраль 28, 2000


Функции Windows API:GetWindowTextLength

Функция GetWindowTextLength

Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

GetWindowTextLength возвращает длину в символах текста в заголовке окна,если таковой имеется.Если окно является элементом управления,функция возвращает длину его текста. В случае ошибки функция возвращает 0.

hwnd
Дескриптор окна,в котором находится заголовок .

Пример:

' Вычисляем длину заголовка формы Form1
Dim textlen As Long  ' длина заголовка

' вычисляем количество символов в заголовке
textlen = GetWindowTextLength(Form1.hWnd)

Debug.Print "Длина заголовка: "; textlen

Схожие функции: GetWindowText
Категория Окна
В начало.

последнее обновление: Февраль 28, 2000


Функции Windows API:InflateRect

Функция InflateRect

Declare Function InflateRect Lib "user32.dll" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

InflateRect увеличивает или уменьшает размер прямоугольника. Значения для изменений добавлены к обеим его сторонам, так что в действительности ширина и\или высота увеличений прямоугольника двойное. Например, если Вы передаете 20 как x, левые и правые стороны будут оба расширены на 20, так что ширина будет увеличена на 40. Положительные значения увеличивают размер, в то время как отрицательные значения уменьшают это. Функция возвращает 0 в случае ошибка или 1 в успешном случае.

lpRect
Прямоугольник, чтобы изменить размер.
x
Значение для расширения левой и правой сторон. Положительные значения увеличивают ширину; отрицательные значения уменьшают.
y
Значение для изменений верхней и нижней границ. Положительные значения увеличивают высоту; отрицательные значения уменьшают.

Пример:

' Увеличим  ширину окна Form1  на 100, и сократим ее
' высоту на 50 используя ее прямоугольник.
Dim winrect As RECT  ' получим прямоугольник окна
Dim retval As Long  ' возвращаемое значение

retval = GetWindowRect(Form1.hWnd, winrect)  'получаем прямоугольник  Form1
retval = InflateRect(winrect, 50, -25)  ' Эти значения, добавленные к каждой стороне для изменения размеров
' Теперь измените окно на экране, чтобы соответствовать его новому прямоугольнику
retval = SetWindowPos(Form1.hWnd, 0, winrect.Left, winrect.Top, winrect.Right, winrect.Bottom, 0)

Схожие функции: OffsetRect
Категория: Прямоугольники

В начало.

последнее обновление:Июнь 26, 2000


Функции Windows API:IntersectRect

Функция IntersectRect

Declare Function IntersectRect Lib "user32.dll" (lpDestRect As RECT, lpSrc1Rect As RECT, lpSrc2Rect As RECT) As Long

Платформа: Win 95/98, Win NT

IntersectRect создает прямоугольник, основанный на пересекающейся части двух других прямоугольников. Прямоугольная область(регион), где два исходных прямоугольника,перекрывая,создают перекрестный прямоугольник. Если один или оба из исходных прямоугольников пуст или не имеется никакого пересечения, функция возвращает 0, и прямоугольник lpDestRect установлен в (0,0) - (0,0). Если исходные прямоугольники накладываются, пересечение помещено в lpDestRect, и функция возвращает 1.

lpDestRect
Прямоугольник, который будет установлен как пересечение из двух исходных прямоугольников.
lpSrc1Rect
Первый исходный прямоугольник.
lpSrc2Rect
Второй исходный прямоугольник.

Пример:

' Определим, накладываются ли окна Form1 и Form2 на
' экране. Если нет,то перекрестный прямоугольник будет пуст.
Dim intrect As RECT  'Получим перекрестный прямоугольник
Dim window1 As RECT, window2 As RECT  ' Получим прямоугольники Form1 и Form2
Dim result As Long  'будет установлен в 0, если нет никакого пересечения или в 1, если имеется пересечение
Dim retval As Long  ' возвращаемое значение для других функций

retval = GetWindowRect(Form1.hWnd, window1)  ' Получим прямоугольник Form1
retval = GetWindowRect(Form2.hWnd, window2)  'Получим прямоугольник Form2
result = IntersectRect(intrect, window1, window2)  ' Определяем перекрестный прямоугольник
If result = 0  Then
  Debug.Print "Окна Form1 и Form2 не накладываются на экране."
Else
  Debug.Print "Окна Form1 и Form2 накладываются на экране."
End If

Схожие функции: SubtractRect, UnionRect
Категория: Прямоугольники

В начало.

последнее обновление: Июнь 27, 2000


Функции Windows API:InvertRect

Функция InvertRect

Declare Function InvertRect Lib "user32.dll" (ByVal hdc As Long, lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

InvertRect инвертирует изображение внутри прямоугольной области на устройстве. Перевернутые цвета рассчитаны,исходя из двоичного NOT значения RGB цвета каждого пиксела внутри прямоугольника. Функция возвращает ненулевое значение в успешном случае, или 0 в случае ошибки.

hdc
Контекст устройства на устройстве, чтобы инвертировать цвета в данном прямоугольнике.
lpRect
Прямоугольник для инвертирования.

Пример:

' Инвертируем цвета в прямоугольнике (20,30) - (150,100) на окне Form1.
Dim r As RECT  ' прямоугольник
Dim retval As Long  ' возвращаемое значение

retval = SetRect(r, 20, 30, 150, 100)   ' устанавливаем r в (20,30)-(150,100)
retval = InvertRect(Form1.hDC, r)   ' инвертируем пикселы в пределах прямоугольника

Схожие функции: InvertRgn
Категория: Фигуры

В начало.

последнее обновление: Май 04, 2000


Функции Windows API:InvertRgn

Функция InvertRgn

Declare Function InvertRgn Lib "gdi32.dll" (ByVal hdc As Long, ByVal hRgn As Long) As Long

Платформа: Win 95/98, Win NT

InvertRgn инвертирует цвета всех пикселов внутри области устройства. Инверсия пикселов рассчитывается с помощью двоичной операции NOT на значении RGB цвета каждого пиксела. Функция возвращает 0 в случае ошибки, или ненулевое значение в успешном случае.

hdc
Контекст устройства на устройстве, чтобы инвертировать пикселы в пределах области.
hRgn
Дескриптор к области на устройстве для инвертирования.

Пример:

' Инвертируем пикселы в пределах  области эллипса на окне Form1.
' Область имеет ограничительный прямоугольник (20,30) - (150,110).
Dim hrgn As Long  ' дескриптор области
Dim retval As Long  ' возвращаемое значение

' Создаем  область-эллипс , чтобы инвертировать и получить дескриптор.
hrgn = CreateEllipticRgn(20,30,150,110) ' ограничительный прямоугольник (20,30)-(150,110)
' инвертируем эту область в окне Form1.
retval = InvertRgn(Form1.hDC, hrgn)
' удаляем область для освобождения ресурсов системы.
retval = DeleteObject(hrgn)

Схожие функции: InvertRect
Категория: Регионы

В начало.

последнее обновление: Май 2, 2000


Функции Windows API:IsCharLower

Функция IsCharLower

Declare Function IsCharLower Lib "user32" Alias "IsCharLowerA" (ByVal cChar As Byte) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000:Поддерживается.

IsCharLower определяет является ли символ нижним регистром. Это определение основано на семантике языка выбранного пользователем во время установки или через Панель Управления.

Возвращаемое значение

Если символ является нижним регистром, функция возвращает значение,отличное от нуля,если символ не является нижним регистром,функция возвращает 0 (используйте GetLastError для получения кода ошибки).

Параметры

cChar
Определяет символ, который нужно тестировать.

Пример

' Определяем,является ли первая буква строки "русский_проект."
'нижним регистром

Dim mystring As String  ' строка для тестирования
mystring = "русский_проект"

' определяем регистр первого символа строки
If IsCharLower(Asc(mystring)) = 0 Then
    MsgBox "Верхний регистр"
   Else
    MsgBox "Нижний регистр"
End If

Схожие функции
IsCharUpper
Категория
Строки

В начало.

последнее обновление:Май 16, 2000
© 1999-2000 Александр Климов.
Русский_Проект


Функции Windows API:IsCharUpper

Функция IsCharUpper

Declare Function IsCharUpper Lib "user32" Alias "IsCharUpperA" (ByVal cChar As Byte) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000:Поддерживается.

IsCharLower определяет является ли символ верхним регистром. Это определение основано на семантике языка выбранного пользователем во время установки или через Панель Управления.

Возвращаемое значение

Если символ является верхним регистром, функция возвращает значение,отличное от нуля,если символ не является нижним регистром,функция возвращает 0 (используйте GetLastError для получения кода ошибки).

Параметры

cChar
Определяет символ, который нужно тестировать.

Пример

' Определяем,является ли первая буква строки "Русский_проект."
'верхним регистром

Dim mystring As String  ' строка для тестирования
mystring = "Русский_проект"

' определяем регистр первого символа строки
If IsCharUpper(Asc(mystring)) = 0 Then
    MsgBox "Нижний регистр"
   Else
    MsgBox "Верхний регистр"
End If

Схожие функции
IsCharLower
Категория
Строки

В начало.

последнее обновление:Май 16, 2000
© 1999-2000 Александр Климов.
Русский_Проект


Функции Windows API:IsIconic

Функция IsIconic

Declare Function IsIconic Lib "user32.dll" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

IsIconic находит, свернуто ли данное окно или нет. Функция возвращает 0, если окно не свернуто; или возвращает ненулевое значение, если окно свернуто.

hwnd
Дескриптор окна, чтобы определить- свернуто или нет.

Пример:

' Определяем, развернуто ли окно Form1, свернуто, или восстановлено.
Dim minflag As Long, maxflag As Long  ' узнаем состояние(свернутое или развернутое)

minflag = IsIconic(Form1.hWnd)  ' Form1 свернуто?
maxflag = IsZoomed(Form1.hWnd)  ' Form1 развернуто?
If minflag <> 0 Then
  Debug.Print "Form1 свернуто."
Elseif maxflag <> 0 Then
  Debug.Print "Form1 развернуто."
Else
  Debug.Print "Form1 восстановлено."
End If

Схожие функции: IsZoomed, ShowWindow
Категория: Окна

В начало.

последнее обновление: Май 12, 2000


Функции Windows API:IsRectEmpty

Функция IsRectEmpty

Declare Function IsRectEmpty Lib "user32.dll" (lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

IsRectEmpty выясняет,пуст ли прямоугольник . Прямоугольник считается пустым, если его правый край не находится справа от его левого края, и-или его край основания не ниже его высшего края. Например, прямоугольник (50,50) - (25,100) пуст, потому что правый край - слева от левого края. Функция возвращает 1, если прямоугольник пуст и 0, если - нет.

lpRect
Прямоугольник для проверки.

Пример:

' Определим, накладываются ли окна Form1 и Form2
' Если нет,то перекрестный прямоугольник будет пуст.
Dim intrect As RECT  ' получим перекрестный прямоугольник
Dim window1 As RECT, window2 As RECT  ' получим прямоугольники Form1 и Form2
Dim isempty As Long  ' будет установлен в 0, если пересечение не пусто и 1, если нет
Dim retval As Long  ' возвращаемое значение для других функций

retval = GetWindowRect(Form1.hWnd, window1)  ' Получаем прямоугольник Form1
retval = GetWindowRect(Form2.hWnd, window2)  ' Получаем прямоугольник Form2
retval = IntersectRect(intrect, window1, window2)  ' определим перекрестный прямоугольник
isempty = IsRectEmpty(intrect)  ' определите, является ли он пустым -он будет таким, если не имеется никакого пересечения
If isempty = 0  Then 'В этом случае, перекрестный прямоугольник будет также пуст
  Debug.Print "Окна Form1 и Form2  накладываются на экране."
Else
  Debug.Print "Окна Form1 и Form2 не накладываются на экране."
End If

Схожие функции: SetRectEmpty
Категория: Прямоугольники

В начало.

последнее обновление: Июнь 25, 2000


Функции Windows API:IsWindowEnabled

Функция IsWindowEnabled

Declare Function IsWindowEnabled Lib "user32.dll" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

IsWindowEnabled определяет, доступно ли окно в настоящее время или заблокировано. Если окно заблокировано, оно не может получать фокус и игнорирует любой предпринятый ввод. Многие окна, типа кнопок и других средств управления, будут казаться недоступными, когда заблокированы. Функция возвращает 0, если окно заблокировано, или ненулевое значение, если окно доступно.

hwnd
Дескриптор окна, чтобы определить, доступно ли оно или заблокировано.

Пример:

' Изменим состояние окна Command1. Если окно
' заблокировано,делаем  доступным; если доступно,блокируем его.
Dim wasenabled As Long  ' Получаем состояние Command1

' Получаем состояние Command1(доступно или нет)
wasenabled = IsWindowEnabled(Command1.hWnd)
If wasenabled = 0 Then  ' Если не не доступно
  MsgBox "Кнопка не доступна"
Else  ' и наоборот
  MsgBox "Кнопка доступна"
End If

Схожие функции: EnableWindow
Категория: Окна

В начало.

последнее обновление: Май 12, 2000


Функции Windows API:IsZoomed

Функция IsZoomed

Declare Function IsZoomed Lib "user32.dll" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

IsZoomed находит, развернуто ли данное окно или нет. Функция возвращает 0, если окно не развернуто (это могло бы быть или восстановлено или свернуто); или возвращает ненулевое значение, если окно развернуто.

hwnd
Дескриптор окна, чтобы узнать- развернуто или нет.

Пример:

' Определяем, развернуто ли окно Form1, свернуто, или восстановлено.
Dim minflag As Long, maxflag As Long  ' узнаем состояние(свернутое или развернутое)

minflag = IsIconic(Form1.hWnd)  ' Form1 свернуто?
maxflag = IsZoomed(Form1.hWnd)  ' Form1 развернуто?
If minflag <> 0 Then
  Debug.Print "Form1 свернуто."
Elseif maxflag <> 0 Then
  Debug.Print "Form1 развернуто."
Else
  Debug.Print "Form1 восстановлено."
End If

Схожие функции: IsIconic, ShowWindow
Категория: Окна

В начало.

последнее обновление: Май 12, 2000


Функции Windows API:keybd_event

Процедура keybd_event

Declare Sub keybd_event Lib "user32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Платформа

  • Windows 95: Поддерживает.
  • Windows 98: Поддерживает,но устарела;пользуйтесь SendInput.
  • Windows NT: Требуется Windows NT 3.1 или выше,но устарела для Windows NT 4.0 с Service Pack 3 (SP3) или выше;пользуйтесь SendInput.
  • Windows 2000: Поддерживает,но устарела;пользуйтесь SendInput.
  • Windows CE: Требуется Windows CE 1.0 или выше,но устарела для Windows CE 2.0 или выше; пользуйтесь SendInput.

keybd_event имитирует нажатия клавиш на клавиатуре.

keybd_event не является функцией и не возвращает никаких значений.

Параметры

bVk
Виртуальный код клавиши для имитации нажатия и отпускания клавиши.
bScan
Зарезервировано -- установлено в 0.
dwFlags
Комбинация следующих флагов определяет различные способы имитации:
KEYEVENTF_EXTENDEDKEY
Префикс скэн-кода с префиксным байтом, имеющим значение &HE0.
KEYEVENTF_KEYUP
Клавиша, указанная в bVk будет отпущена. Если этот флажок не определен, клавиша будет нажата.
dwExtraInfo
Дополнительное 32-разрядное значение, связанное с событием клавиатуры.

Константы

Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2

Пример

' Имитируем нажатия клавиш CTRL+ESC для нажатия кнопки Пуск

keybd_event VK_CONTROL, 0, 0, 0  ' нажимаем CTRL
keybd_event VK_ESCAPE, 0, 0, 0  ' нажимаем ESC
keybd_event VK_CONTROL, 0, KEYEVENTF_KEYUP, 0  ' отпускаем CTRL
keybd_event VK_ESCAPE, 0, KEYEVENTF_KEYUP, 0  ' отпускаем ESC

Схожие функции mouse_event, SendInput
Категория Клавиатура

В начало.

последнее обновление: Июль 07, 2000


Функции Windows API:LineTo

Функция LineTo

Declare Function LineTo Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

LineTo рисует линию из текущей точки в другую точку на устройстве. Линия рисуется цветом,определяемым свойством ForeColor формы или PictureBox. После вывода линии,конечная точка становится новой текущей точкой для новой линии.В случае ошибки возвращается 0,в успешном случае возвращается 1.

hdc
Контекст устройства для вывода линии.
x
Координата x конечной точки линии.
y
Координата y конечной точки линии.

Пример:

' Рисуем красную линию из точки (0,40) в точку (100,50) на окне формы Form1.
Dim pt As POINTAPI  ' нужно для другой функции
Dim retval As Long  ' возвращаемое значение

Form1.ForeColor = RGB(255, 0, 0)  ' Устанавливаем свойство foreground формы Form1 в красный цвет.
retval = MoveToEx(Form1.hdc, 0, 40, pt)  ' устанавливаем первую точку в (0,40)
retval = LineTo(Form1.hdc, 100, 50)  ' рисуем линию из первой точки в (100,50)

Схожие функции: Polyline, PolylineTo, PolyPolyline
Категория: Линии и кривые

В начало.

последнее обновление: Февраль 23, 2000


Функции Windows API:LoadCursor

Функция LoadCursor

Declare Function LoadCursor Lib "user32.dll" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Any) As Long

Платформа: Win 95/98, Win NT

LoadCursor загружает курсор из ресурсов курсора к настоящему времени работающей программы или из ресурсов курсора Windows. Курсор может ссылаться на свое имя в ресурсах или своим ID-номером числового ресурса. В успешном случае функция возвращает дескриптор загруженного курсора. В случае ошибки возвращается 0.

hInstance
Для того, чтобы загрузить курсор из ресурсов курсора программы, установите его в программе заранее(MousePointer). Для того, чтобы загрузить из ресурсов курсора Windows-установите в 0.
lpCursorName
Или строка, содержащая имя ресурса курсора или числовой номер ID, опознающий ресурс. Для курсоров Windows могут быть использованы следующие флаги, чтобы выбрать желаемый ресурс курсора:
IDC_APPSTARTING = 32650
Курсор фонового режима(стрелка с песочными часами)
IDC_ARROW = 32512
Стандартная стрелка
IDC_CROSS = 32515
Стрелка-крест(графическое выделение).
IDC_IBEAM = 32513
Стрелка выделения текста.
IDC_ICON = 32641
только в Win NT: Пустой курсор
IDC_NO = 32648
Операция невозможна.
IDC_SIZE = 32640
только в Win NT: Изменение размеров.
IDC_SIZEALL = 32646
Изменение размеров.
IDC_SIZENESW = 32643
Диагональное изменение размеров.
IDC_SIZENS = 32645
Вертикальное изменение размеров.
IDC_SIZENWSE = 32642
Диагональное изменение размеров.
IDC_SIZEWE = 32644
Горизонтальное изменение размеров.
IDC_UPARROW = 32516
Специальное выделение(стрелка вверх).
IDC_WAIT = 32514
Система недоступна (песочные часы).

Пример:

' Отобразим стандартный курсор фонового режима Windows
'(обычно стрелка с песочными часами) на три секунды.
' Затем восстановим прежние значения.
Dim hcursor As Long  ' дескриптор к новому курсору
Dim holdcursor As Long  ' полученный дескриптор к прежнему курсору
Dim retval As Long  ' возвращаемое значение

hcursor = LoadCursor(0, IDC_APPSTARTING)   ' загружаем курсор фонового режима
holdcursor = SetCursor(hcursor)  ' устанавливаем новый курсор
Sleep 3000   ' три секунды для показа
retval = SetCursor(holdcursor)    ' восстанавливаем прежний курсор

Схожие функции: LoadCursorFromFile
Категория: Курсоры

В начало.

последнее обновление: Май 15, 2000


Функции Windows API:LoadCursorFromFile

Функция LoadCursorFromFile

Declare Function LoadCursorFromFile Lib "user32.dll" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long

Платформа: Win 95/98, Win NT

LoadCursorFromFile загружает курсор из файлов (*.cur) или (*.ani). В успешном случае функция возвращает дескриптор нового загруженного курсора,в противном случае функция возвратит 0.

lpFileName
Имя файла(*.cur или *.ani)

Пример:

' Загрузим курсор "C:\Samples\globe.ani" и установим его
'текущим курсором на три секунды.  Затем восстановим
'прежний курсор.
Dim hcursor As Long  ' получаемый дескриптор загружаемого курсора
Dim holdcursor As Long  ' дескриптор к текущему курсору
Dim retval As Long  '  возвращаемое значение

hcursor = LoadCursorFromFile("C:\Samples\globe.ani")  ' загружаем курсор из файла
If hcursor = 0 Then End  ' выходим из программы, если не сможем загрузить курсор
holdcursor = SetCursor(hcursor)  ' устанавливаем загружаемый курсор в качестве текущего
Sleep 3000  ' три секунды для показа
retval = SetCursor(holdcursor)  ' восстанавливаем старый курсор

Схожие функции: LoadCursor
Категория: Курсоры

В начало.

последнее обновление:Май 15, 2000


Функции Windows API:mciSendString

Функция mciSendString

Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long

Платформа

  • Windows 95/98: Поддерживается
  • Windows NT: Требуется Windows NT 3.1 или выше
  • Windows 2000:Поддерживается

mciSendString посылает строку команды устройству ИНТЕРФЕЙСА УПРАВЛЕНИЯ СРЕДОЙ ПЕРЕДАЧИ ДАННЫХ(MCI). Устройство, которому команда послана, определено в строке команды.Строки команды, используемые с этой функцией могут исполнять почти любую задачу, необходимую для использования устройства мультимедиа, установленного на компьютере. MciSendString обеспечивает относительно простой способ исполнять операции с мультимедиа.

Смотри Команды MCI для списка некоторых строк команды, используемых функцией mciSendString.

Возвращаемое значение

В успешном случае функция возвращает 0. В случае ошибки, функция возвращает код ошибки MCI отличный от нуля. Чтобы получить текстовое описание ошибки, используйте функцию mciGetErrorString.

lpstrCommand
Указатель на строку, которая определяет строку команды MCI.
lpstrReturnString
Для строк команды,возвращаюх информацию, эта строка получает вывод данных командой. Эта строка должна первоначально быть по крайней мере в длиной 128 символов, долго чтобы получить строку. Любая информация, помещенная в эту строку будет с нулевым символом в конце. Если строка команды не возвращает информацию, этот параметр игнорируется. Если никакой информации возвращения не требуется, этот параметр может быть NULL
uReturnLength
Размер в символах, буфера возвращений, указанного lpstrReturnString
hwndCallback
Если "уведомляющийся" флажок строки команды определен, это - дескриптор окна, чтобы получить сообщение MM_MCINOTIFY , когда команда завершается, независимо от того, выполнена ли она или потерпело неудачу.

Пример:

' Открываем или закрываем CD-ROM .
Dim retval As Long  ' возвращаемое значение
Dim returnstring As Long

retval = mciSendString("set CDAudio door open", _
returnstring, 127, 0)
'если закрыть,то используем
retval = mciSendString("set CDAudio door closed", _
returnstring, 127, 0)
Категория: Мультимедиа

В начало.

последнее обновление: Июль 06, 2000


Функции Windows API:MessageBeep

Функция MessageBeep

Declare Function MessageBeep Lib "user32.dll" (ByVal wType As Long) As Long

Платформа: Win 95/98, Win NT

MessageBeep воспроизводит один из системных звуков. Также,фукция может воспроизводить звук встроенного динамика компьютера.В успешном случае функция возвращает 1,при ошибке-возвращается 0.

wType
Если установлен в -1 (или &HFFFFFFFF), воспроизводит звук с помощью внутреннего динамика компьютера. В других случаях,воспроизводится звук в соответствии с флагом:
MB_ICONASTERISK = &H40
Звук Звездочка.
MB_ICONEXCLAMATION = &H30
Звук Восклицание.
MB_ICONHAND = &H10
Play the SystemHand sound.
MB_ICONQUESTION = &H20
Звук Вопрос.
MB_OK = &H0
Стандартный звук.

Пример:

' Воспроизводим системный звук Вопрос.
Dim retval As Long  ' возвращаемое значение

retval = MessageBeep(MB_ICONQUESTION)

Схожие функции: Beep
Категория: Ошибки
В начало.

последнее обновление: Февраль 21, 2000


Функции Windows API:MoveFile

Функция MoveFile

Declare Function MoveFile Lib "kernel32.dll" Alias "MoveFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String) As Long

Платформа: Win 95/98, Win NT

MoveFile перемещает или переименовывает файл или папку. Если переименовывается или перемещается папка,то переименовываются или перемещаются все подпапки(изменяются пути к подпапкам). В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

lpExistingFileName
Файл или папка для перемещения или переименовывания.
lpNewFileName
Новое имя для файла или папки,получаемое при перемещении или переименовывания.

Пример:

' Перемещаем файл C:\Samples\temp.txt в C:\RussianProject\buffer.txt.
' При этом файл в папке,из которой идет перемещение,перестает существовать.
Dim retval As Long  ' возвращаемое значение

retval = MoveFile("C:\Samples\temp.txt", "C:\RussianProject\buffer.txt")

Схожие функции: CopyFile
Категория: Файлы

В начало.

последнее обновление: Март 16, 2000


Функции Windows API:MoveToEx

Функция MoveToEx

Declare Function MoveToEx Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, lpPoint As POINTAPI) As Long

Платформа: Win 95/98, Win NT

MoveToEx устанавливает координаты текущей точки на устройстве.Текущая точка является начальной точкой в функциях,заканчивающихся на "To" (например, LineTo). Функция также помещает бывшую текущую точку в переменную lpPoint. В случае ошибки функция возвращает 0 , в успешном случае возвращается 1.

hdc
Контекст устройства для установления текущей точки.
x
Координата x точки.
y
Координата y точки.
lpPoint
Переменная для бывшей начальной точки.

Пример:

' Рисуем красную линию из точки (0,40) в точку (100,50) на окне формы Form1.
Dim pt As POINTAPI  ' для получения координат начальной точки
Dim retval As Long   ' возвращаемое значение

Form1.ForeColor = RGB(255, 0, 0)   ' Устанавливаем свойство foreground формы Form1 в красный цвет.
retval = MoveToEx(Form1.hdc, 0, 40, pt)   ' устанавливаем первую точку в (0,40)
' Внимание!Теперь pt содержит старую текущую точку.
retval = LineTo(Form1.hdc, 100, 50)   ' рисуем линию из первой точки в (100,50)

Категория: Линии и кривые

В начало.

последнее обновление: Февраль 28, 2000


Функции Windows API:MoveWindow

Функция MoveWindow

Declare Function MoveWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal bRepaint As Long) As Long

Платформа: Win 95/98, Win NT

MoveWindow перемещает окно в новое место. В дополнение к перемещению, эта функция также изменяет размер окна. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hwnd
Дескриптор окна.
x
Координата x вернхнего левого угла окна.
y
Координата y вернхнего левого угла окна.
nWidth
Ширина в пикселах для нового окна.
nHeight
Высота в пикселах для нового окна.
bRepaint
Если 1, модифицирует экран, чтобы отобразить окно в его новой позиции. Если 0, не модифицирует экран, чтобы отразить перемещение (окно, будет кажется, неперемещено, но будет фактически в его новом местоположении!).

Пример:

' перемещаем окно формы Form1.  Устанавливаем его верхний левый угол в точку (200, 150).
' Устанавливаем новые размеры ширины(175) и высоты(300)
Dim retval As Long  ' возвращаемое значение

' перемещаем окно и перерисовываем его в новом месте
retval = MoveWindow(Form1.hWnd, 200, 150, 175, 300, 1)

Схожие функции: GetWindowRect, SetWindowPos
Категория: Окна

В начало.

последнее обновление: Март 21, 2000


Функции Windows API:OemToChar

Фунция OemToChar

Declare Function OemToChar Lib "user32" Alias "OemToCharA" (ByVal lpszSrc As String, ByVal lpszDst As String) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.

OemToChar конвертирует текст из dos-кодировки в win-кодировку.

Возвращаемое значение
Функция всегда возвращает ненулевое значение

Параметры

lpszSrc
Строка для перекодировки.
lpszDst
Перекодированая строка в буфере. Если функция CharToOem используется как функция ANSI, строка может быть переведена на месте, устанавливая параметр lpszDst в тот же адрес,что и параметр lpszSrc .

Пример

' конвертируем строку "Русский_Проект!" в win-кодировку.
'Воспользуйтесь каким-нибудь перекодировщиком,
'чтобы получить эту строку в dos-кодировке
Dim sourcestring As String   ' нужная строка
Dim deststring As String  ' получаемая строка
Dim code As Long

sourcestring = "Русский_Проект"  'строка для перекодировки
deststring = Space$(Len(sourcestring))'получаем перекодированную строку
code = OemToChar(sourcestring, deststring)
Debug.Print deststring

Схожие функции
CharToOem
Категория
Строки

В начало

последнее обновление:Май 15, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:OffsetRect

Функция OffsetRect

Declare Function OffsetRect Lib "user32.dll" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

OffsetRect меняет позицию прямоугольника без изменения его размера. Если значение для перемещения отрицательно, прямоугольник перемещается влево или вверх(в зависимости от направления); положительные значения перемещают его вправо или вниз. Функция возвращает 0 в случае ошибки или 1 в успешном случае.

lpRect
Прямоугольник для перемещения.
x
Значение для перемещения прямоугольника горизонтально. Отрицательные значения двигают его налево, положительные- направо.
y
Значение для перемещения прямоугольника вертикально. Отрицательные значения двигают его вверх, положительные- вниз.

Пример:

' Сдвигаем окно Form1 на 50 пикселов вправо и 20 пикселов вверх,используя его прямоугольник.
Dim winrect As RECT  ' прямоугольник окна
Dim retval As Long  ' возвращаемое значение

retval = GetWindowRect(Form1.hWnd, winrect)  'получаем прямоугольник окна Form1
retval = OffsetRect(winrect, 50, -20)  ' сдвигаем прямоугольник вправо и вверх
' Теперь заменим окно на экране, чтобы соответствовать его новому прямоугольнику
retval = SetWindowPos(Form1.hWnd, 0, winrect.Left, winrect.Top, winrect.Right, winrect.Bottom, 0)

Схожие функции: InflateRect
Категория: Прямоугольники

В начало.

последнее обновление: Июнь 24, 2000


Функции Windows API:PtInRect

Функция PtInRect

Declare Function PtInRect Lib "user32.dll" (lpRect As RECT, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

PtInRect определяет, находится ли точка внутри или вне прямоугольника. Обратите внимание, что Windows рассматривает левые и верхние грани прямоугольника,как внутренние части, а правые и нижние грани,как не входящие в фигуры. Функция возвращает 1, если точка внутри или 0, если снаружи.

lpRect
Прямоугольник.
x
Координата x точки, чтобы определить-внутри или вне фигуры.
y
Координата y точки, чтобы определить-внутри или вне фигуры.

Пример:

' Определяем,является ли курсор мыши внутри или вне окна Form1.
' Это сделано,  проверяя точку курсора мыши с прямоугольником окна.
Dim mousept As POINTAPI  ' получаем координаты курсора
Dim winrect As RECT  ' получаем прямоугольник Form1
Dim isinside As Long  ' возвращает 1 если внутри или 0 если снаружи
Dim retval As Long  ' возвращаемое значение для других функций

retval = GetCursorPos(mousept)  'определяем позицию курсора
retval = GetWindowRect(Form1.hWnd, winrect)  ' определяем прямоугольник формы Form1

' Выясним,расположен ли курсор мыши  внутри прямоугольника Form1
isinside = PtInRect(winrect, mousept.x, mousept.y)
If isinside = 1 Then
  Debug.Print "Курсор мыши - в настоящее время внутри Form1."
Else
  Debug.Print "Курсор мыши - в настоящее время вне Form1"
End If

Категория: Прямоугольники

В начало.

последнее обновление: Июнь 14, 2000


Функции Windows API:PtInRegion

Функция PtInRegion

Declare Function PtInRegion Lib "gdi32.dll" (ByVal hRgn As Long, ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

PtInRegion определяет, находится ли данная точка в пределах региона. Функция возвращает 0, если точка - не внутри региона, или ненулевое значение, если точка находится в регионе.

hRgn
Дескриптор региона, чтобы определить, находится ли данная точка в пределах региона.
x
Координата x точки для определения, находится ли точка в пределах региона.
y
Координата y точки для определения, находится ли точка в пределах региона.

Пример:

' Рассмотрим линию, соединяющую правую верхнюю и левую нижнюю углы экрана
'  и рассмотрим регион, сделанный левой верхней стороной этой линии. Определим
' находится ли курсор мыши  в пределах этой области или нет.
Dim swidth As Long, sheight As Long  ' ширина и высота экрана
Dim hRgn As Long  ' дескриптор к треугольной области, объясненной выше
Dim curpos As POINTAPI  ' получаем местоположение курсора мыши
Dim vertices(0 To 2) As POINTAPI  ' Вершина региона
Dim isinside As Long  ' получает 0 если не внутри, иначе-ненулевое значение
Dim retval As Long  'возвращаемое значение

' Получим ширину и высоту экрана . Используем эту информацию, чтобы создать регион.
swidth = GetSystemMetrics(SM_CXSCREEN)  ' ширина экрана
sheight = GetSystemMetrics(SM_CYSCREEN)   'высота экрана
' Загрузим вершину региона в массив и создадим его.
vertices(0).x = 0: vertices(0).y = 0  ' vertex #1: верхний левый угол экрана
vertices(1).x = swidth: vertices(1).y = 0  ' vertex #2: верхний правый угол экрана
vertices(2).x = 0: vertices(2).y = sheight  ' vertex #3: нижний левый угол экрана
hRgn = CreatePolygonRgn(vertices(0), 3, ALTERNATE)  ' создаем регион

' получим местоположение курсора мыши.
retval = GetCursorPos(curpos)
' Определим, находится ли местоположение курсора в пределах региона.
isinside = PtInRegion(hRgn, curpos.x, curpos.y)
If isinside = 0 Then
  Debug.Print "Курсор вне региона."
Else
  Debug.Print "Курсор внутри региона."
End If

' Удаляем регион для освобождения ресурсов.
retval = DeleteObject(hRgn)

Схожие функции: RectInRegion
Категория: Регионы

В начало.

последнее обновление: Июнь 15, 2000


Функции Windows API:Rectangle

Функция Rectangle

Declare Function Rectangle Lib "gdi32.dll" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win 95/98, Win NT

Rectangle рисует прямоугольное поле на устройстве. Прямоугольник рисуется текущим цветом устройства и заполняется, используя текущие цвет и кисть. Функция возвращает 0 в случае ошибка, или 1 в успешном случае.

hdc
Контекст устройства объекта.
X1
Координата x левого верхнего угла прямоугольника.
Y1
Координата y левого верхнего угла прямоугольника.
X2
Координата x нижнего правого угла прямоугольника.
Y2
Координата y нижнего правого угла прямоугольника.

Пример:

' Рисуем зеленый прямоугольник на окне Form1 с верхним левым
' углом (25,30) и нижним правым углом (100,50)
Dim retval As Long  ' возвращаемое значение

Form1.ForeColor = RGB(0, 255, 0)  ' устанавливаем ForeColor формы в зеленый цвет
retval = Rectangle(Form1.hdc, 25, 30, 100, 50)  ' рисуем прямоугольник

Схожие функции: RoundRect
Категория: Фигуры

В начало.

последнее обновление: Июнь 09, 2000


Функции Windows API:RectInRegion

Функция RectInRegion

Declare Function RectInRegion Lib "gdi32.dll" (ByVal hRgn As Long, lpRect As RECT) As Long

Платформа: Win 95/98, Win NT

RectInRegion определяет, находится ли прямоугольник в пределах данной области. Прямоугольник находится внутри региона, если любая его часть ( не обязательно весь) находится в пределах (региона. Функция возвращает 0, если прямоугольник - полностью вне региона, или ненулевое значение, если прямоугольник - по крайней мере частично в пределах региона.

hRgn
Дескриптор области, чтобы определить, находится ли прямоугольник в ее пределах.
lpRect
Прямоугольник, чтобы определить, находится ли по крайней мере частично в пределах области.

Пример:

' Рассмотрим линию, соединяющую правую верхнюю и левую нижнюю углы экрана
'  и рассмотрим регион, сделанный левой верхней стороной этой линии. Определим
'находится ли окно Form1 по крайней мере частично в пределах области.
Dim swidth As Long, sheight As Long   ' ширина и высота экрана
Dim hRgn As Long   ' дескриптор к треугольной области, объясненной выше
Dim winrect As RECT  ' Получим прямоугольник Form1
Dim vertices(0 To 2) As POINTAPI  ' Вершина региона
Dim isinside As Long  ' получает 0 если не внутри, иначе-ненулевое значение
Dim retval As Long  'возвращаемое значение

' Получим ширину и высоту экрана . Используем эту информацию, чтобы создать регион.
swidth = GetSystemMetrics(SM_CXSCREEN)   ' ширина экрана
sheight = GetSystemMetrics(SM_CYSCREEN)   'высота экрана
' Загрузим вершину региона в массив и создадим его.
vertices(0).x = 0: vertices(0).y = 0  ' vertex #1: верхний левый угол экрана
vertices(1).x = swidth: vertices(1).y = 0   ' vertex #2: верхний правый угол экрана
vertices(2).x = 0: vertices(2).y = sheight  ' vertex #3: нижний левый угол экрана
hRgn = CreatePolygonRgn(vertices(0), 3, ALTERNATE)  ' создаем регион

' Получим прямоугольник окна Form1, идентифицируя углы окна.
retval = GetWindowRect(Form1.hWnd, winrect)
' Определим, находится ли прямоугольник в пределах региона.
isinside = RectInRegion(hRgn, winrect)
If isinside = 0 Then  ' не находится
  Debug.Print "Form1 - полностью вне области."
Else
  Debug.Print "Form1 находится по крайней мере частично внутри области."
End If

' Удаляем регион для освобождения ресурсов.
retval = DeleteObject(hRgn)

Схожие функции: PtInRegion
Категория: Регионы

В начало.

последнее обновление: Июнь 16, 2000


Функции Windows API:RegCloseKey

Функция RegCloseKey

Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long

Платформа

Win 95/98, Win NT

RegCloseKey закрывает раздел в реестре. Эта операция должна происходить после чтения или записи данных в реестр. Закрытие раздела реестра освобождает ресурсы компьютера. Естественно,вы не должны пользоваться этим разделом после его закрытия. Возвращаемое значение

В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля.

Параметры
hKey
Раздел реестра.
Пример
' создаем раздел под именем HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config

Dim hregkey As Long  ' получаем дескриптор для вновь созданного или открытого раздела реестра
Dim secattr As SECURITY_ATTRIBUTES
Dim subkey As String  ' имя подраздела
Dim neworused As Long  ' получаем 1,если раздел был создан или 2 был открыт существующий раздел
Dim retval As Long  ' возвращаемое значение

' назначаем название для нового раздела
subkey = "Software\Russian_Project\Samples\Config"
secattr.nLength = Len(secattr)
secattr.lpSecurityDescriptor = 0
secattr.bInheritHandle = True

' создаем или открываем раздел реестра
retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_WRITE, secattr, hregkey, neworused)
If retval <> 0 Then  ' ошибка при открытии
  Debug.Print "ошибка при открытии или создании раздела."
  End  'закрываем программу
End If

' закрываем раздел
retval = RegCloseKey(hregkey)
Схожие функции
RegCreateKeyEx, RegOpenKeyEx
Категория
Реестр

В начало.

последнее обновление: Январь 12, 2000


Функции Windows API:RegCreateKeyEx

Функция RegCreateKeyEx

Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition As Long) As Long

Платформа

Win 95/98, Win NT

RegCreateKeyEx создает новый раздел реестра.Или,если он существует,открывает его,что аналогично функции RegOpenKeyEx. Дескриптор раздела передается в переменную phkResult. В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля.

hKey
Дескриптор к открываемому разделу реестра или один из следующих флагов,которые идентифицируют ветви,в которых будут созданы новые разделы:
HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER хранит информацию о пользователе,который в настоящий момент работает на компьютере.
HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE хранит информацию о локальном компьютере, в том числе-установки аппаратного и программного обеспечения,конфигурация приложений,установки безопасности.
HKEY_USERS = &H80000003
Ветвь HKEY_USERS содержит информацию обо всех пользователях,зарегистрированных в системе.
HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG хранит информацию о текущей конфигурации.
HKEY_DYN_DATA = &H80000006
Ветвь HKEY_DYN_DATA хранит динамическую информацию.
lpSubkey
Имя для нового раздела
Reserved
Зарезервированный параметр. Установлен равным 0.
lpClass
Имя класса или типа объекта.Можно использовать пустую строку.
dwOptions
Установите в 0,если вы хотите сохранить раздел в реестре. Если вы этого не хотите-установите параметр,равным 1,и раздел будет уничтожен при выходе из Windows.
samDesired
Один или более флагов для желаемого доступа к чтению/записи:
KEY_ALL_ACCESS = &HF003F
Разрешен любой тип доступа.
KEY_CREATE_LINK = &H20
Разрешение для создания символьных ссылок.
KEY_CREATE_SUB_KEY = &H4
Разрешение для создания подраздела.
KEY_ENUMERATE_SUB_KEYS = &H8
Разрешение для перечисления подразделов.
KEY_EXECUTE = &H20019
Аналогично KEY_READ.
KEY_NOTIFY = &H10
Разрешение на уведомление изменений.
KEY_QUERY_VALUE = &H1
Разрешен доступ к данным подраздела.
KEY_READ = &H20019
Разрешен доступ к чтению
KEY_SET_VALUE = &H2
Разрешение на установку данных подраздела.
KEY_WRITE = &H20006
Разрешен доступ к записи.
lpSecurityAttributes
Для NT,уровень безопасности,передаваемый разделу.Для остальных версий Windows параметр равен 0.
phkResult
Переменная,получаемая от дескриптора нового или открытого раздела.
lpdwDisposition
Переменная,которая получает значение 1,если раздел был создан,и значение 2,если был открыт уже существующий раздел.

Пример

' создаем раздел под именем HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config

Dim hregkey As Long  ' получаем дескриптор для вновь созданного или открытого раздела реестра
Dim secattr As SECURITY_ATTRIBUTES
Dim subkey As String  ' имя подраздела
Dim neworused As Long  ' получаем 1,если раздел был создан или 2 был открыт существующий раздел
Dim retval As Long  ' возвращаемое значение

' назначаем название для нового раздела
subkey = "Software\Russian_Project\Samples\Config"
secattr.nLength = Len(secattr)
secattr.lpSecurityDescriptor = 0
secattr.bInheritHandle = True

' создаем или открываем раздел реестра
retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_WRITE, secattr, hregkey, neworused)
If retval <> 0 Then  ' ошибка при открытии
  Debug.Print "ошибка при открытии или создании раздела."
  End  'закрываем программу
End If

' закрываем раздел
retval = RegCloseKey(hregkey)
Схожие функции
RegCloseKey, RegDeleteKey, RegOpenKeyEx
Категория
Реестр

В начало.

последнее обновление: Январь 16, 2000


Функции Windows API:RegOpenKeyEx

Функция RegOpenKeyEx

Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long

Платформа: Win 95/98, Win NT

RegOpenKeyEx открывает раздел реестра. Функция используется,когда нужно считать или записать некоторое значение в этом разделе. В отличие от RegCreateKeyEx, эта функция не создает раздел,если он не существует. Дескриптор раздела передается в переменную phkResult. В случае успеха функция возвращает 0,в случае ошибки-код ошибки,отличный от нуля.

hKey
Дескриптор открываемого раздела реестра или один из следующих флагов,которые идентифицируют ветви:
HKEY_CURRENT_USER = &H80000001
Ветвь HKEY_CURRENT_USER хранит информацию о пользователе,который в настоящий момент работает на компьютере.
HKEY_LOCAL_MACHINE = &H80000002
Ветвь HKEY_LOCAL_MACHINE хранит информацию о локальном компьютере, в том числе-установки аппаратного и программного обеспечения,конфигурация приложений,установки безопасности.
HKEY_USERS = &H80000003
Ветвь HKEY_USERS содержит информацию обо всех пользователях,зарегистрированных в системе.
HKEY_CURRENT_CONFIG = &H80000005
Ветвь HKEY_CURRENT_CONFIG хранит информацию о текущей конфигурации.
HKEY_DYN_DATA = &H80000006
Ветвь HKEY_DYN_DATA хранит динамическую информацию.
lpSubKey
Имя открываемого раздела.
ulOptions
Зарезервированный параметр. Установлен равным 0.
samDesired
Один или более флагов для желаемого доступа к чтению/записи:
KEY_ALL_ACCESS = &HF003F
Разрешен любой тип доступа.
KEY_CREATE_LINK = &H20
Разрешение для создания символьных ссылок.
KEY_CREATE_SUB_KEY = &H4
Разрешение для создания подраздела.
KEY_ENUMERATE_SUB_KEYS = &H8
Разрешение для перечисления подразделов.
KEY_EXECUTE = &H20019
Аналогично KEY_READ.
KEY_NOTIFY = &H10
Разрешение на уведомление изменений.
KEY_QUERY_VALUE = &H1
Разрешен доступ к данным подраздела.
KEY_READ = &H20019
Разрешен доступ к чтению .
KEY_SET_VALUE = &H2
Разрешение на установку данных подраздела.
KEY_WRITE = &H20006
Разрешен доступ к записи.
phkResult
Переменная,получаемая от дескриптора открытого раздела.

Пример:

' Открываем раздел под именем HKEY_CURRENT_USER\Software\Russian_Project\Samples\
Dim hregkey As Long  ' дескриптор раздела
Dim subkey As String  ' имя подраздела
Dim retval As Long  ' возвращаемое значение

subkey = "Software\Russian_Project\Samples"

' открываем раздел реестра
retval = RegOpenKeyEx(HKEY_CURRENT_USER, subkey, 0, STANDARD_RIGHTS_READ, hregkey)
If retval <> 0 Then  ' ошибка во время открытия
  Debug.Print "Ошибка во время открытия раздела реестра."
  End  ' завершаем работу
End If

' Вставьте сюда ваш код.....
MsgBox "Раздел существует!"
' закрываем раздел
retval = RegCloseKey(hregkey)

Схожие функции: RegCloseKey, RegCreateKeyEx
Категория: Реестр

В начало.

последнее обновление: Июнь 09, 2000


Функции Windows API:ReleaseCapture

Функция ReleaseCapture

Declare Function ReleaseCapture Lib "user32.dll" () As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

ReleaseCapture завершает фиксацию мыши для указанного окна. При вызове ReleaseCapture, все сообщения ввода мыши немедленно возвращаются обратно в обычный режим. Функция должна использоваться сразу же,как только вы уже не нуждаетесь в фиксации мыши после вызова SetCapture.

В успешном случае функция возвращает значение,отличное от нуля,в противном случае функция возвратит 0 (используйте GetLastError для получения кода ошибки).

Пример

' Перемещаем форму за любое место,
' а не только за заголовок
 ' Вставьте код в Form_MouseMove

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim retval As Long 'возвращаемое значение
If Button = 1 Then
        Call ReleaseCapture
        'посылаем сообщение о нажатии левой кнопки мыши на заголовке нашей формы
        retval = SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
    End If
End Sub
' код для Form_Paint
Private Sub Form_Paint()
    Me.Print "Щелкните на форме и удерживая кнопку перетаскивайте форму"
End Sub
Схожие функции
GetCapture, SetCapture
Категория
Мышь

В начало.

последнее обновление:Июнь 05, 2000
© 1999-2000 Александр Климов.
Русский_Проект


Функции Windows API:ReleaseDC

Функция ReleaseDC

Declare Function ReleaseDC Lib "user32.dll" (ByVal hWnd As Long, ByVal hdc As Long) As Long

Платформа

Win 95/98, Win NT

ReleaseDC освобождает ресурсы,которые были заняты при использовании GetDC для получения контекста устройства. Функция вызывается при завершении работы с контекстом устройства. В случае ошибки функция возвращает 0,в успешном случае возвращает 1. Эта функция не должна использоваться для уничтожения контекста устройства,созданного функцией CreateDC Для этого случая используйте DeleteDC.

hWnd
дескриптор
hdc
Контекст устройства.

Пример

' Находим контекст устройства Рабочего стола
Dim deskhwnd As Long  ' дескриптор Рабочего стола
Dim deskhdc As Long  ' контекст устройства
Dim retval As Long  ' возвращаемое значение

deskhwnd = GetDesktopWindow()  ' получаем дескриптор рабочего стола
deskhdc = GetDC(deskhwnd)   ' получаем контекст устройства

' здесь вы размещаете свой код

 ' освобождаем ресурсы,взятые у контекста устройства.
retval = ReleaseDC(deskhwnd, deskhdc)

Схожие функции

DeleteDC, GetDC

Категория

Устройства
В начало.

последнее обновление: Февраль 1, 2000


Функции Windows API:RemoveDirectory

Функция RemoveDirectory

Declare Function RemoveDirectory Lib "kernel32.dll" Alias "RemoveDirectoryA" (ByVal lpPathName As String) As Long

Платформа: Win 95/98, Win NT

RemoveDirectory удаляет папку с диска.Функция не удаляет файлы или подпапки внутри папки.Если папка не является пустой,то происходит ошибка. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

lpPathName
Папка для удаления. Папка должна быть пустой.

Пример:

' Удалим папку C:\Samples.
Dim retval As Long  ' возвращаемое значение

retval = RemoveDirectory("C:\Samples")  ' удаляем папку
If retval = 1 Then  ' удаление прошло успешно
  Debug.Print "Папка C:\Samples была удалена."
Else
  Debug.Print "Ошибка.  Убедитесь,что папка C:\Samples пуста."
End If

Схожие функции: CreateDirectory
Категория: Файлы

В начало.

последнее обновление: Май 28, 2000


Функции Windows API:RoundRect

Функция RoundRect

Declare Function RoundRect Lib "gdi32" (ByVal hdc As Long, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As Long

Платформа: Win 95/98, Win NT

RoundRect рисует округленный прямоугольник на устройстве текущим цветом формы и заполняет его текущим цветом кисти.Первые две пары координат (x,y) определяют верхний левый и нижний правый углы прямоугольника. Третья пара определяет ширину и высоту округленных углов.Функция возвращает 0 в случае ошибки, или 1 в успешном случае.

hdc
Контекст устройста.
X1
Координата x левого верхнего угла соответствующего прямоугольника.
Y1
Координата y левого верхнего угла соответствующего прямоугольника.
X2
Координата x нижнего правого угла соответствующего прямоугольника.
Y2
Координата y нижнего правого угла соответствующего прямоугольника.
X3
Ширина каждого округленного угла.
Y3
Высота каждого округленного угла.

Пример:

' Рисуем зеленый округленный прямоугольник на окне Form1 с левым верхним
' углом (25,30), нижним правым углом (100,50), и округленных
'углов шириной10 и высотой 5 пикселов
Dim retval As Long  ' возвращаемое значение

Form1.ForeColor = RGB(0, 255, 0)  ' устнавливаем цвет ForeColor формы в зеленый
retval = RoundRect(Form1.hdc, 25, 30, 100, 50, 10, 5)  ' рисуем прямоугольник

Схожие функции: Rectangle
Категория: Фигуры

В начало.

последнее обновление: Июнь 09, 2000


Функции Windows API:SelectObject

Функция SelectObject

Declare Function SelectObject Lib "gdi32.dll" (ByVal hdc As Long, ByVal hObject As Long) As Long

Платформа: Win 95/98, Win NT

SelectObject выбирает объект для использования его в устройстве.Объект имеет растр,кисть,шрифт,перо,регион и т.д.Выбранный объект может использоваться устройством,сколько это может вам понадобиться.Функция возвращает дескриптор.

hdc
Контекст устройства для устройства,в котором используется объект.
hObject
дескриптор к растру,кисти,шрифту,перу,региону.

Пример:

' Рисуем прямоугольник с координатами
' (10,20) и (175,100) на форме Form1.
'Используем сплошную желтую кисть для заполнения прямоугольника.
Dim hbrush As Long  ' получаем дескриптор к желтой кисти
Dim holdbrush As Long  ' получаем дескриптор к кисти формы по умолчанию
Dim retval As Long  ' возвращаемое значение

hbrush = CreateSolidBrush(RGB(255, 255, 0))  ' создаем сплошную желтую кисть
' Сохраняем кисть формы по умолчанию,
'чтобы восстановить после завершения программы
holdbrush = SelectObject(Form1.hDC, hbrush)  ' выбираем кисть
' Рисуем желтый прямоугольник,используя желтую кисть
retval = Rectangle(Form1.hDC, 10, 20, 175, 100)
' Восстанавливает прежнюю кисть формы прежде уничтожения новой кисти
retval = SelectObject(Form1.hDC, holdbrush)  ' старая кисть
retval = DeleteObject(hbrush)  ' уничтожаем желтую кисть

Схожие функции DeleteObject

Категория: Устройства
В начало.

последнее обновление: Февраль 17, 2000


Функции Windows API:SendMessage

Функция SendMessage

Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Long, ByVal Msg As Long, wParam As Any, lParam As Any) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

SendMessage посылает сообщение окну. Функция вызывает оконную процедуру для обработки сообщения. Эта функция не возвращается, пока окно не завершит обработку сообщения.

Возвращаемое значение
Функция возвращает значение сообщения.

Параметры

hWnd
Дескриптор окна,в которое будет послано сообщение.
Msg
Идентификатор сообщения.
wParam
Дополнительные определенные данные сообщения.
lParam
Дополнительные определенные данные сообщения.

Константы

Const WM_SYSCOMMAND = &H112
Const SC_SCREENSAVE = &HF140&

Пример

' Запускаем хранитель экрана

SendMessage hwnd, WM_SYSCOMMAND, SC_SCREENSAVE, ByVal 0&

Категория
Сообщения

В начало.

последнее обновление: Май 04, 2000


Функции Windows API:SetActiveWindow

Функция SetActiveWindow

Declare Function SetActiveWindow Lib "user32.dll" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

SetActiveWindow делает данное окно активным окном для программы, передавая ему фокус. Это окно только становится приоритетным окном, если приложение, которое имеет его - в настоящее время является активной программой. Эта функция может использоваться только на окнах, которые имеет программа. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hwnd
Дескриптор окна, чтобы установить его как активное окно.

Пример:

' Делаем окно Form1 активным окном для программы.
' Эта функция не будет делать окно приоритетным, если пользователь  работает в настоящее время
' с отдельной программой.
Dim retval As Long  ' возвращаемое значение

retval = SetActiveWindow(Form1.hWnd)  ' установим Form1 как активное окно приложения

Схожие функции: GetActiveWindow, SetForegroundWindow
Категория: Окна

В начало.

последнее обновление: Июль 03, 2000


Функции Windows API:SetArcDirection

Функция SetArcDirection

Declare Function SetArcDirection Lib "gdi32.dll" (ByVal hdc As Long, ByVal ArcDirection As Long) As Long

Платформа: Win 95/98, Win NT

SetArcDirection устанавливает направление,в котором будет выводится дуга на устройстве. Дуга может рисоваться по часовой и против часовой стрелки. Хотя Win 95/98 поддерживает эту функцию,но при этом игнорируются настройки и дуги рисуются всегда против часовой стрелки! В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hdc
Контекст устройства для вывода дуги.
ArcDirection
Точно один из следующих флажков, определяющих направление для вывода дуг:
AD_CLOCKWISE = 2
Дуги рисуются по часовой стрелке от отправной точки до конечной точки.
AD_COUNTERCLOCKWISE = 1
Дуги рисуются против часовой стрелки от отправной точки до конечной точки.

Пример:

' Рисуем дугу,которая формирует верхнюю часть эллипса. Эллипс
' с координатами (100, 100), с шириной 200 и высотой 100 пикселов.
' Дуга рисуется красным цветом на Form1.
Dim retval As Long  ' возвращаемое значение

Form1.ForeColor = RGB(255, 0, 0)  ' установим красный цвет для формы
retval = SetArcDirection(Form1.hDC, AD_COUNTERCLOCKWISE)  ' рисуем дугу против часовой стрелки
' Эллипс ограничен прямоугольником (0,50)-(200,150).
retval = Arc(Form1.hDC, 0, 50, 200, 150, 200, 100, 0, 100)

Схожие функции: AngleArc, Arc, ArcTo, GetArcDirection
Категория: Линии и кривые

В начало.

последнее обновление: Июнь 20, 2000


Функции Windows API:SetComputerName

Функция SetComputerName

Declare Function SetComputerName Lib "kernel32.dll" Alias "SetComputerNameA" (ByVal lpComputerName As String) As Long

Платформа

Win 95/98, Win NT

SetComputerName устанавливает новое имя компьютера пользователя.Имя помещено в строковую переменную lpComputerName.Чтобы изменения вступили в силу,требуется перезагрузка компьютера.Имя компьтера можно изменить с помощью вкладки Сеть на Панели управления. Функция возвращает 0, если произошла ошибка, и 1 в успешном случае.

Параметры

lpComputerName
Строка, достаточно большая для хранения имени компьютера.

Пример

' Устанавливаем новое имя компьютера
Dim sNewName As String
 ' Просим пользователя ввести новое имя
sNewName = InputBox("Введите новое имя компьютера.")
  SetComputerName sNewName  ' устанавливаем новое имя
' сообщаем пользователя и просим перезагрузиться
MsgBox "Новое имя компьютера " & sNewName & vbNewLine _
& "Перезагрузите компьютер"

Схожие функции: GetComputerName
Категория:
Системная информация

В начало.

последнее обновление: Март 13, 2000


Функции Windows API:SetCursor

Функция SetCursor

Declare Function SetCursor Lib "user32.dll" (ByVal hCursor As Long) As Long

Платформа: Win 95/98, Win NT

SetCursor устанавливает изображения для использования в качестве курсора мыши. Новый курсор может быть любым правильным курсором, который может быть создан или загружен. В случае успеха функция возвращает дескриптор прежнего курсора или 0 в случае ошибки.

hCursor
Дескриптор нового курсора.

Пример:

' Отобразим стандартный курсор фонового режима Windows
'(обычно стрелка с песочными часами) на три секунды.
' Затем восстановим прежние значения.
Dim hcursor As Long  ' дескриптор к новому курсору
Dim holdcursor As Long  ' полученный дескриптор к прежнему курсору
Dim retval As Long  ' возвращаемое значение

hcursor = LoadCursor(0, IDC_APPSTARTING)   ' загружаем курсор фонового режима
holdcursor = SetCursor(hcursor)   ' устанавливаем курсор
Sleep 3000   ' три секунды для показа
retval = SetCursor(holdcursor)   ' восстанавливаем прежний курсор

Схожие функции: GetCursor, SetSystemCursor
Категория: Курсоры

В начало.

последнее обновление: Май 15, 2000


Функции Windows API:SetCursorPos

Функция SetCursorPos

Declare Function SetCursorPos Lib "user32.dll" (ByVal x As Long, ByVal y As Long) As Long

Платформа: Win 95/98, Win NT

SetCursorPos устанавливает позицию курсора мыши. Если Вы пробуете установить координаты вне диапазона дисплея (например, (700,40) на мониторе 640x480 или вне прямоугольника ограничения,установленным ClipCursor, курсор будет только идти к краю экрана или прямоугольника. Функция возвращает 0, если произошла ошибка , или 1 в успешном случае.

x
Координата x .
y
Координата y .

Пример:

' Перемещаем курсор мыши к точке (100,200) на экране
Dim retval As Long  ' возвращаемое значение

retval = SetCursorPos(100, 200)  ' перемещаем курсор мыши к точке (100,200)

Схожие функции: GetCursorPos
Категория: Курсор

В начало.

последнее обновление: Март 08, 2000


Функции Windows API:SetDoubleClickTime

Функция SetDoubleClickTime

Declare Function SetDoubleClickTime Lib "user32.dll" (ByVal wCount As Long) As Long

Платформа: Win 95/98, Win NT

SetDoubleClickTime устанавливает максимально разрешенный промежуток времени между двумя щелчками мыши для обнаружения операционной системой двойного щелчка.Измененный параметр будет действовать во всех программах Windows.Поэтому будьте осторожны,так как пользователь обычно устанавливает эти параметры в Панели управления. Функция возвращает 1 в успешном случае и 0 в случае ошибки.

wCount
Максимальный промежуток времени в миллисекундах для определения двойного щелчка мышью.Установка значения в 0 устанавливает промежуток,принятый по умолчанию в Windows-500 миллисекунд.

Пример:

' Устанавливаем максимальный промежуток в 1 секунду.
Dim retval As Long  ' возвращаемое значение

retval = SetDoubleClickTime(1000)  ' устанавливаем промежуток в 1 секунду.
Debug.Print "Промежуток между двумя щелчками-1 секунда (1000 миллисекунд)."

Схожие функции: GetDoubleClickTime
Категория: Мышь
В начало.

последнее обновление: Февраль 11, 2000


Функции Windows API:SetFileAttributes

Функция SetFileAttributes

Declare Function SetFileAttributes Lib "kernel32.dll" Alias "SetFileAttributesA" (ByVal lpFileName As String, ByVal dwFileAttributes As Long) As Long

Платформа: Win 95/98, Win NT

SetFileAttributes меняет атрибуты файла или папки. Вы можете установить четыре вида:архивный,только для чтения,скрытый и системный.В случае ошибки функция возвращает 0 ,в успешном случае 1.

lpFileName
Полное имя файла или папки.
dwFileAttributes
Один или несколько флагов,определяющих атрибуты файла:
FILE_ATTRIBUTE_ARCHIVE = &H20
Архивный файл.
FILE_ATTRIBUTE_HIDDEN = &H2
Скрытый файл или папка.Обычно его не видно пользователю.
FILE_ATTRIBUTE_NORMAL = &H80
Файл не имеет атрибутов(нельзя комбинировать с другими флагами).
FILE_ATTRIBUTE_READONLY = &H1
Файл только для чтения.
FILE_ATTRIBUTE_SYSTEM = &H4
Системный файл.Является частью операционной системы.

Пример:

' устанавливаем атрибуты файла C:\MyProgram\secret.dat в скрытый,только для чтения,архивный
Dim fileattrs As Long  ' атрибуты
Dim retval As Long  ' возвращаемое значение

fileattrs = FILE_ATTRIBUTE_ARCHIVE Or FILE_ATTRIBUTE_HIDDEN Or FILE_ATTRIBUTE_READONLY
retval = SetFileAttributes("C:\MyProgram\secret.dat", fileattrs)  ' Устанавливаем атрибуты

Схожие функции: GetFileAttributes
Категория: Файлы
В начало.

последнее обновление: Февраль 10, 2000


Функции Windows API:SetForegroundWindow

Функция SetForegroundWindow

Declare Function SetForegroundWindow Lib "user32.dll" (ByVal hwnd As Long) As Long

Платформа: Win 95/98, Win NT

SetForegroundWindow делает указанное окно текущим приоритетным окном и передает ему фокус. Эта функция должна использоваться только с окнами, которые имеет ваша программа. В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hwnd
Дескриптор окна, чтобы установить его как приоритетное окно.

Пример:

' Делаем окно Form1 текущим приоритетным окном.
Dim retval As Long  ' возвращаемое значение

retval = SetForegroundWindow(Form1.hWnd)  '  устанавливаем окно Form1 текущим приоритетным окном.

Схожие функции: GetForegroundWindow, SetActiveWindow
Категория: Окна

В начало.

последнее обновление: Июль 03, 2000


Функции Windows API:SetPixel

Функция SetPixel

Declare Function SetPixel Lib "gdi32.dll" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

SetPixel устанавливает цвет единственного(отдельного) пиксела на устройстве. Из-за несоответствия цвета на устройстве, иногда цвет, фактически используемый на устройстве может отличиться от цвета, указанного функцией. Функция будет терпеть неудачу, если указанный пиксел невидим или вне диапазона при вызове функции.

Возвращаемое значение

В случае ошибки функция возвращает -1 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение RGB цвета.

Параметры

hdc
Дескриптор контекста устройства.
X
Координата x пиксела.
Y
Координата y пиксела.
crColor
Значение RGB цвета пиксела.

Пример

' Беспорядочно окрасим все пикселы в окне Form1. Этот пример
' получает прямоугольник Form1 и выполняет итерации
'через все точки (пикселы) внутри него.
Dim winrect As RECT  ' прямоугольник окна Form1
Dim rgbval As Long  'значение RGB случайно выбранного цвета
Dim x As Long, y As Long  ' счетчик для координат x и y
Dim retval As Long  ' возвращаемое значение

' получаем прямоугольник окна Form1.
retval = GetWindowRect(Form1.hWnd, winrect)

' Цикл через каждый пиксел в пределах Form1.
For y = 0 To winrect.bottom - winrect.top
  For x = 0 To winrect.right - winrect.left
    ' берем случайный цвет,  выбирая значения между 0 и 255
    ' включительно для каждого компонента цвета.
    rgbval = RGB(Int(256 * Rnd), Int(256 * Rnd), Int(256 * Rnd))
    ' установим пиксел в цвет,указанный выше.
    retval = SetPixel(Form1.hDC, x, y, rgbval)
  Next x
Next y

Схожие функции
GetPixel, SetPixelV
Категория
Графика

В начало.

последнее обновление: Апрель 26, 2000


Функции Windows API:SetRect

Функция SetRect

Declare Function SetRect Lib "user32.dll" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long

Платформа: Win 95/98, Win NT

SetRect устанавливает позицию и размер прямоугольника. Две координаты указывают на левые верхние и нижние правые углы прямоугольника. Функция возвращает 0 в случае ошибки или 1в успешном случае.

lpRect
Прямоугольник, чтобы установить позицию и размер.
X1
Координата x левого верхнего угла прямоугольника.
Y1
Координата y левого верхнего угла прямоугольника.
X2
Координата x нижнего правого угла прямоугольника.
Y2
Координата y нижнего правого угла прямоугольника.

Пример:

' Устанавливает прямоугольник r
'Использование этой функции более эффективно и берет меньшее количество участка памяти чем
'установка прямоугольника по четырем координатам.
Dim r As RECT  ' прямоугольник
Dim retval As Long  ' возвращаемое значение

retval = SetRect(r, 20, 30, 100, 50)
Схожие функции: SetRectEmpty
Категория: Прямоугольники

В начало.

последнее обновление: Май 03, 2000


Функции Windows API:SetSystemTime

Функция SetSystemTime

Declare Function SetSystemTime Lib "kernel32.dll" (lpSystemTime As SYSTEMTIME) As Long

Платформа

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

SetSystemTime устанавливает системные дату и время. Время должно уставливаться по Гринвичу,а не местное время.

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение отличное от нуля.
Параметры

lpSystemTime
Новые время и дата для установки системного времени.Параметр wDayOfWeek стуктуры игнорируется.

Пример

' Установим системное время с параметрами:
' Октябрь 3, 1999 16:46:00 по Гринвичу
Dim systime As SYSTEMTIME  ' новое время и дата
Dim retval As Long  ' возвращаемое значение

' Передадим информацию о дате в структуру.
systime.wYear = 1999
systime.wMonth = 10
systime.wDay = 3
systime.wHour = 16
systime.wMinute = 46
systime.wSecond = 0
systime.wMillisecond = 0

' Установим системное время с желаемыми параметрами.
retval = SetSystemTime(systime)

Схожие функции
GetSystemTime
Категория
Время

В начало.

последнее обновление: Май 11, 2000


Функции Windows API:SetVolumeLabel

Функция SetVolumeLabel

Declare Function SetVolumeLabel Lib "kernel32.dll" Alias "SetVolumeLabelA" (ByVal lpRootPathName As String, ByVal lpVolumeName As String) As Long

Платформа

  • Windows 95/98:Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000:Поддерживается.
  • Windows CE: Не поддерживается.

SetVolumeLabel устанавливает метку тома файловой системы. Новая метка тома не может содержать любые запрещенные символы.

Возвращаемое значение
В случае ошибки,функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает значение,отличное от нуля.

Параметры

lpRootPathName
Путь корневого каталога диска, чтобы установить метку тома файловой системы. Этот путь должен включить конечную наклонную черту влево. Например, диск C: был бы "C:\ ".
lpVolumeName
Новое название метки тома.

Пример

 'устанавливаем новую метку тома диска C: в "MYDRIVE".
Dim retval As Long' возвращаемое значение
' устанавливаем новую метку тома.
retval = SetVolumeLabel("C:\", "MYDRIVE")

Смотри также
GetVolumeInformation
Категория
Системная информация

В начало.

последнее обновление: Апрель 17, 2000


Функции Windows API:SetWindowPos

Функция SetWindowPos

Declare Function SetWindowPos Lib "user32.dll" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

Платформа: Win 95/98, Win NT

SetWindowPos располагает окно в новое местоположение на экране,устанавливая его координаты,вид,позицию относительно других окон. В случае ошибки возвращается 0,в успешном случае-возвращается 1.

hwnd
Дескриптор окна для перемещения.
hWndInsertAfter
Дескриптор окна,после которого окно hwdn находится в списке окон.Следующие флаги определяют позицию окна hwnd:
HWND_BOTTOM = 1
Внизу списка окон.
HWND_NOTOPMOST = -2
Наверху списка окон,под самым верхним окном.
HWND_TOP = 0
Поверх всех окон.
HWND_TOPMOST = -1
Наверху списка окон.
x
Координата x вернего левого угла окна.
y
Координата y вернего левого угла окна.
cx
Ширина окна.
cy
Высота окна.
wFlags
Флаги,определяющие вид окна:
SWP_DRAWFRAME = &H20
Рисует рамку окна,аналогично SWP_FRAMECHANGED.
SWP_FRAMECHANGED = &H20
Рисует рамку окна.
SWP_HIDEWINDOW = &H80
Скрывает окно с экрана.
SWP_NOACTIVATE = &H10
Делает окно неактивным.
SWP_NOCOPYBITS = &H100
Не обновляет рисунки на окне после перемещения.
SWP_NOMOVE = &H2
Сохраняет координаты текущего окна(параметры x и y игнорируются).
SWP_NOSIZE = &H1
Сохраняет координаты текущего окна.
SWP_NOREDRAW = &H8
Не перерисовывает содержимое окна.
SWP_NOZORDER = &H4
Сохраняет текущее положение окна в списке других окон.
SWP_SHOWWINDOW = &H40
Отображает окно,если оно скрыто.

Пример:

' Перемещаем окно формы Form1 в верхний левый угол экрана и поверх всех окно.
Dim flags As Long  ' флаг для окна
Dim retval As Long  ' возвращаемое значение

' Не изменяем размеры окна, показываем окно в новом месте
flags = SWP_NOSIZE Or SWP_DRAWFRAME
retval = SetWindowPos(Form1.hWnd, HWND_TOPMOST, 0, 0, 1, 1, flags) ' перемещаем окно

Схожие функции: BringWindowToTop, GetWindowRect, MoveWindow
Категория: Окна

В начало.

последнее обновление: Май 08, 2000


Функции Windows API:SetWindowText

Функция SetWindowText

Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long

Платформа: Win 95/98, Win NT

SetWindowText изменяет текст в заголовке окна. В успешном случае функция возвращает 1,в случае ошибки возвращается 0.

hwnd
Дескриптор окна .
lpString
Новый текст для заголовка окна.

Пример:

' Устанавливаем новый заголовок для Form1в "Русский_Проект".
Dim retval As Long  ' возвращаемое значение

retval = SetWindowText(Form1.hWnd, "Русский_Проект")

Схожие функции: GetWindowText
Категория: Окна

В начало.

последнее обновление: Май 11, 2000


Функции Windows API:Shell_NotifyIcon

Функция Shell_NotifyIcon

Declare Function Shell_NotifyIcon Lib "shell32" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, pnid As NOTIFYICONDATA) As Boolean

Платформа

  • Windows 95/98:Поддерживается.
  • Windows NT: Требуется Windows NT 4.0 или выше.
  • Windows 2000:Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

Shell_NotifyIcon управляет значком, расположенным в области панели задач, обычно упоминаемой как "system tray"(рядом с часами). Функция добавляет новый значок, удаляет существующий значок, или изменяет(заменяет) существующий значок, принадлежащий программе запроса. Программы обычно используют значки в "system tray", когда они запускаются в фоновом режиме без окна; значок дает пользователю возможность обратиться к этой программе.

Все сообщения этого значка посылаются к его окну для обработки.Смотри структуру NOTIFYICONDATA для дополнительной информации. Стандартное поведение Shell_NotifyIcon использует следующие сообщения: WM_MOUSEMOVE, WM_LBUTTONDOWN, WM_LBUTTONUP, WM_RBUTTONDOWN, WM_RBUTTONUP и т.д.

Возвращаемое значение
В случае ошибки функция возвращает 0 или значение,отличное от нуля в успешном случае.

Параметры

dwMessage
Флажки,определяющие следующие действия:
NIM_ADD
Добавляет значок,описанный в pnid в system tray.
NIM_DELETE
Удаляет значок,описанный в pnid из system tray.
NIM_MODIFY
Изменяет значок,описанный в pnid.
NIM_SETFOCUS
Windows 2000: Возвращает фокус в system tray. Это должно быть сделано после завершения операций интерфейса пользователя, связанных со значком.
NIM_SETVERSION
Windows 2000: Использование члена структуры uVersion как pnid определяет поведение панели задач. Эти две опции - специфичны для Windows 2000. Обратите внимание, что это руководство не объясняет, как использовать поведение, представленное Windows 2000.
pnid
Обеспечивает информацию идентификации и параметры настройки для значка,необходимую для значения dwMessage.

Константы

Const NIM_ADD = &H0
Const NIM_DELETE = &H2
Const NIM_MODIFY = &H1
Const NIM_SETFOCUS = &H4
Const NIM_SETVERSION = &H8

Пример

Примечание:Чтобы использовать этот пример, Вы должны сначала создать маленькое меню на Form1. Создайте меню, называемое mnuTrayIconPopup. Затем создайте два пункта меню под ним: mnuAbout и mnuExit.

' Помещаем значок к системным часам при запуске программы.
'При щелчке правой кнопкой мыши появляется контекстное
' меню.Значок удаляется при закрытии программы
'вставляем переменную в General Declarations
Dim t As NOTIFYICONDATA

Private Sub Form_Load()
t.cbSize = Len(t)
t.hWnd = Me.pichook.hWnd
t.uId = 1&
'устанавливаем флаги
t.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
t.ucallbackMessage = WM_MOUSEMOVE
'иконка для программы
t.hIcon = Me.Icon
'всплыващая подсказка
t.szTip = "Привет!" & Chr$(0)
Shell_NotifyIcon NIM_ADD, t
Me.Hide
App.TaskVisible = False

End Sub

Private Sub mnuAbout_Click()
MsgBox "Посетите http://members.xoom.com/wwwind"
End Sub

Private Sub mnuExit_Click()
t.cbSize = Len(t)
t.hWnd = pichook.hWnd
t.uId = 1&
Shell_NotifyIcon NIM_DELETE, t
End

End Sub

Private Sub pichook_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Static rec As Boolean, msg As Long
msg = X / Screen.TwipsPerPixelX
If rec = False Then
rec = True
Select Case msg
Case WM_LBUTTONDBLCLK:
Case WM_LBUTTONDOWN:
Case WM_LBUTTONUP:
Case WM_RBUTTONDBLCLK:
Case WM_RBUTTONDOWN:
Case WM_RBUTTONUP:
Me.PopupMenu mnuTrayIconPopup
End Select
rec = False
End If

End Sub

Категория
Оболочка

В начало.

последнее обновление: Июнь 05, 2000


Функции Windows API:SHEmptyRecycleBin

Функция SHEmptyRecycleBin

Declare Function SHEmptyRecycleBin Lib "shell32.dll" Alias "SHEmptyRecycleBinA" (ByVal hwnd As Long, ByVal pszRootPath As String, ByVal dwFlags As Long) As Long

Платформа

  • Windows 95: Требуется Internet Explorer 4.0 или выше.
  • Windows 98: Поддерживается.
  • Windows NT: Требуется Windows NT 4.0 или выше и Internet Explorer 4.0 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Не поддерживается.

SHEmptyRecycleBin удаляет содержимое Корзины.Функция может удалять файлы из корзины выбранного диска или сразу всех дисков. В успешном случае функция возвращает 0,в случае ошибки функция возвращает значение,отличное от нуля.

Параметры

hwnd
Дескриптор окна.
pszRootPath
Путь к диску,чья Корзина будет освобождаться от файлов. Чтобы освободить все Мусорные корзины , установите значение равным пустой строке.
dwFlags
Комбинация флагов:
SHERB_NOCONFIRMATION
Не показывать подверждение удаления файлов пользователю.
SHERB_NOPROGRESSUI
Не показывать диалоговое окно,показывающее процесс удаления файлов из Корзины.
SHERB_NOSOUND
Не воспроизводить звук после удаления файлов из Корзины.

Константы

Const SHERB_NOCONFIRMATION = &H1
Const SHERB_NOPROGRESSUI = &H2
Const SHERB_NOSOUND = &H4

Пример

' Удаляем содержимое Корзин всех дисков
' не показывая процесса удаления файлов
Dim retval As Long  ' возвращаемое значение

' Удаляем содержимое Корзин, если пользователь согласен с этим.
retval = SHEmptyRecycleBin(Form1.hWnd, "", SHERB_NOPROGRESSUI)

Схожие функции
SHQueryRecycleBin, SHUpdateRecycleBinIcon
Категория
Оболочка

В начало.

последнее обновление: Февраль 29, 2000


Функции Windows API:SHFileOperation

Функция SHFileOperation

Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As Byte) As Long

Платформа.

  • Windows 95/98: Поддерживается.
  • Windows NT: Требуется Windows NT 4.0 или выше.
  • Windows 2000:Поддерживается.
  • Windows CE: Не поддерживается.

SHFileOperation копирует, перемещает, переименовывает или удаляет объект в файловой системе. Вместо незаметного выполнения действия, как это делают обычные функции API, SHFileOperation использует подсказки диалогового окна оболочки. Эта функция - также хороший способ послать один или большее количество файлов в Мусорную корзину вместо их удаления.

Возвращаемое значение
В случае ошибки функция возвращает значение,отличное от нуля. В успешном случае возвращается 0.

Параметры
lpFileOp
Структура SHFILEOPSTRUCT , скопированный должным образом в массив байтов, который определяет операцию файла для выполнения. Это может также получать некоторую обратную связь от функции.
Пример

' Удаляем файлы в корзину
'Поместите Common Dialog Box с именем CDBox.
'  (Project->Components
'   выберите Microsoft Common Dialog)
Private Type SHFILEOPSTRUCT
    hWnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAborted As Boolean
    hNameMaps As Long
    sProgress As String
End Type
Private Const FO_DELETE = &H3
Private Const FOF_ALLOWUNDO = &H40
Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Sub Form_Load()
    Dim SHFileOp As SHFILEOPSTRUCT
    'заголовок для диалогового окна
    CDBox.DialogTitle = "Сейчас будем удалять"
    'фильтр
    CDBox.Filter = "All Files (*.*)|*.*"
    'показываем диалог 'Open File'
    CDBox.ShowOpen
    With SHFileOp
        'удаление файла
        .wFunc = FO_DELETE
        'выбор файла
        .pFrom = CDBox.filename
        'удаление в Корзину
        .fFlags = FOF_ALLOWUNDO
    End With
    'начинаем операцию удаления
    SHFileOperation SHFileOp
    MsgBox "Файл '" + CDBox.filename + "' был перемещен в Корзину !", vbInformation + vbOKOnly, App.Title
End Sub

Категория: Оболочка

В начало.

последнее обновление: Апрель 22, 2000


Функции Windows API:ShowCursor

Функция ShowCursor

Declare Function ShowCursor Lib "user32.dll" (ByVal bShow As Long) As Long

Платформа

Win 95/98, Win NT

ShowCursor показывает или скрывает курсор мыши.

Параметры

bShow
Если False,то курсор невидим,если True-курсор видим.

Пример

' прячем курсор на 3 секунды
Dim X As Long
MsgBox "Сейчас ваш курсор мыши исчезнет на 3 секунды"
'гасим курсор
X = ShowCursor(False)
Sleep 3000
'показываем курсор
X = ShowCursor(True)
'Внимание!
'Погасив курсор,обязательно восстановите его при завершении
Категория
Курсор

В начало.

последнее обновление:Январь 10, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:ShowWindow

Функция ShowWindow

Declare Function ShowWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long

Платформа

Win 95/98, Win NT

ShowWindow показывает(или скрывает) окна стандартным способом.Например,функция может свернуть,развернуть или восстановить окно.Функция возвращает 0,если окно было раньше скрыто.Если окно было видимым-возвращает значение, отличное от нуля.

hwnd
дескриптор окна для изменения статуса этого окна.
nCmdShow
Флаги функции,определяющие вид окна:
SW_HIDE = 0
Скрыть окно и активизировать другое окно.
SW_MAXIMIZE = 3
Развернуть окно.
SW_MINIMIZE = 6
Свернуть окно и активизировать следующее окно в Z-порядке(следующее под свернутым окном).
SW_RESTORE = 9
Активизировать и отобразить окно.Если окно свернуто или развернуто,Windows восстанавливает его исходный размер и положение.
SW_SHOW = 5
Активизировать окно.
SW_SHOWMAXIMIZED = 3
Отобразить окно в развернутом виде.
SW_SHOWMINIMIZED = 2
Отобразить окно в свернутом виде.
SW_SHOWMINNOACTIVE = 7
Отобразить окно в свернутом виде.Активное окно остается активным.
SW_SHOWNA = 8
Отобразить окно в текущем состоянии.Активное окно остается активным.
SW_SHOWNOACTIVATE = 4
Отобразить окно в соответствии с последними значениями позиции и размера.Активное окно остается активным.
SW_SHOWNORMAL = 1
Активизировать и отобразить окно.Если окно свернуто или развернуто,Windows восстанавливает его исходный размер и положение.Приложение должно указывать этот флаг при первом отображении окна.

Пример

' Развертываем окно формы Form1.  Сначала убедимся,что
'окно видимо.
Dim retval As Long  ' возвращаемое значение

retval = ShowWindow(Form1.hWnd, SW_SHOW)  ' показываем окно,если оно скрыто
retval = ShowWindow(Form1.hWnd, SW_MAXIMIZE)  'Развертываем окно
Схожие функции
IsIconic, IsZoomed
Категория: Окна

В начало.

последнее обновление:Январь 17, 2000,
©1999-2000 Александр Климов


Функции Windows API:Sleep

Процедура Sleep

Declare Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)

ПлатформаWin 95/98, Win NT

Sleep останавливает выполнение программы на определенное время.Процедура Sleep не является функцией и не возвращает значение.

Параметры

dwMilliseconds
Число миллисекунд для приостановки выполнения программы.
Пример
' Делаем паузу на две
 'секунды между двумя сообщениями

MsgBox "Делаем паузу"
Sleep 2000  ' 2000 миллисекунд = 2 секунды паузы
MsgBox "Получилось?"
Категория
Разное

В начало.

последнее обновление: Июль 08, 2000


Функции Windows API:sndPlaySound

Функция sndPlaySound

Declare Function sndPlaySound Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) As Long

Платформа: Win 95/98, Win NT

Примечание: Функция sndPlaySound является устаревшей. Пользуйтесь функцией PlaySound.

sndPlaySound запускает WAV-файл или определенный системой звук. При использовании флага SND_NODEFAULT , функция возвращает 0, если WAV-файл (или системный звук) не найден и 1,если звук существует. Если флажок не установлен, функция всегда возвращает 1 и запускает звук по умолчанию Windows, если указанный звук не может быть найден.

Параметры

lpszSoundName
Путь и имя WAV-файла для воспроизведения, или название системного звука.
uFlags
Ноль или большее количество следующих флажков, определяющих, как запустить звук:
SND_ALIAS = &H10000
Воспроизведение звуков Windows,определенных в WIN.INI или в реестре (напр. SystemStart, Asterisk, и т.д.).
SND_ASYNC = &H1
Асинхронное воспроизведение.
SND_FILENAME = &H20000
Запуск указанного файла.
SND_LOOP = &H8
Циклическое воспроизведение до следующего вызова sndPlaySound lpszSoundName = "". Можно также использовать SND_ASYNC .
SND_NODEFAULT = &H2
Не запускать звук по умолчанию Windows, если указанный звук не может быть найден.
SND_NOSTOP = &H10
Не прекращать воспроизведение любого запущенногозвука.
SND_NOWAIT = &H2000
Не ждать,если драйвер занят
SND_SYNC = &H0
Синхронное воспроизведение(значение по умолчанию).Ждать, пока звук не закончил играть перед продолжающимся выполнением программы.

Пример:

 ' играем системный звук Пустая корзина и останавливаем
' выполнение программы пока не закончится воспроизведение звука.
Dim retval As Long

retval = sndPlaySound("EmptyRecycleBin", SND_ALIAS Or SND_SYNC)

Схожие функции: PlaySound
Категория: Мультимедиа

В начало.

последнее обновление: Май 04, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:StretchBlt

Функция StretchBlt

Declare Function StretchBlt Lib "gdi32.dll" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal hSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long

StretchBlt копирует часть изображения от одного устройства до другого. Эта функция также позволяет масштабировать(сжимать,растягивать,выворачивать наизнанку,задавая параметры с разными знаками) изображение, в отличие от функции BitBlt. В случае ошибки,функция возвращает 0,в успешном случае-возвращается 1.

hDestDC
Контекст устройства объекта-получателя.
x
Координата x точки, чтобы поместить изображение внутри цели.
y
Координата y точки, чтобы поместить изображение внутри цели.
nWidth
Ширина части изображения.
nHeight
Высота части изображения.
xSrc
Координата x левого верхнего угла части изображения в источнике.
ySrc
Координата y левого верхнего угла части изображения в источнике.
nSrcWidth
Ширина части изображения в источнике.
nSrcHeight
Высота части изображения в источнике.
dwRop
Флажки, определяющие, какой метод использовать, чтобы копировать исходное изображение:
SRCAND = &H8800C6
Логическое И двух номеров цвета ( источник And получатель).
SRCCOPY = &HCC0020
Точно копирование исходного изображения (получатель = источник).
SRCERASE = &H440328
Логическое And исходного изображения и двоичная инверсия получателя(получатель = источник And (Не получатель).
SRCINVERT = &H660046
Логическое Xor двух номеров цвета (получатель = источник Xor получатель).
SRCPAINT = &HEE0086
Логическое Or этих двух номеров цвета (получатель = источник Or получатель).

Пример:

' Копируем часть изображения из Picture1 в PictureBox2 и
' растягиваем его, чтобы утроить его первоначальную ширину. Первоначальные измерения изображения
' 16x32; его новые 48x32.
' Координаты источника: (45,50)-(60,81)
' Координаты получателя: (0,0)-(47,31)

Dim retval As Long  '  возвращаемое значение

retval = StretchBlt(Picture2.hdc, 0, 0, 48, 32, Picture1.hdc, 45, 50, 16, 32, SRCCOPY)

Схожие функции: BitBlt
Категория: Графика

В начало.

последнее обновление: Апрель 02, 2000


Функции Windows API:SwapMouseButton

Функция SwapMouseButton

Declare Function SwapMouseButton Lib "user32.dll" (ByVal bSwap As Long) As Long

Платформа

Win 95/98, Win NT

SwapMouseButton изменяет настройку, используемую для кнопок мыши. Windows позволяет Вам интерпретировать щелчки с левой кнопкой как щелчки с правой кнопкой и наоборот. Эти функциональные возможности предназначены для левшей. Делайте это с предостережением - новые настройки будут действовать во всех программах. Функция возвращает 1 в успешном случае, или 0 в случае ошибки.

Параметры

bSwap
Определяет настройки кнопки мыши. Значение "0" не меняет кнопки .Значение "1" меняют левые и правые кнопки .

Пример

' Меняем кнопки местами

Dim retval As Long  ' возвращаемое значение

retval = SwapMouseButton(1)  ' переключаем кнопки

Debug.Print "Вы поменяли местами левую и правую кнопки мыши!"
Категория:
Мышь

В начало.

последнее обновление: Май 23, 2000


Функции Windows API:TextOut

Функция TextOut

Declare Function TextOut Lib "gdi32.dll" Alias "TextOutA" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long

Платформа: Win 95/98, Win NT

TextOut отображает строку текста на устройстве. Отношение текста к координатам (x, y) может быть установлена, используя SetTextAlign. Текст будет отображен текущим шрифтом и цветом устройства.В случае успеха функция возвращает 1,в случае ошибки функция возвращает 0.

hdc
Контекст устройства для отображения строки текста.
x
Координата x контрольной точки, чтобы отобразить текст.
y
Координата y контрольной точки, чтобы отобразить текст.
lpString
Строка,отображаемая на устройстве.
nCount
Размер в символах lpString.

Пример:

' Выводим текст "Hello, world!" на окне Form1 в (100,50).
Dim retval As Long  ' возвращаемое значение
' показываем текст:
retval = TextOut(Form1.hDC, 100, 50, "Hello, world!", 13)

Схожие функции: GetTextAlign, SetTextAlign
Категория: Шрифты и тексты

В начало.

последнее обновление: Июнь 04, 2000


Функции Windows API:WindowFromPoint

Функция WindowFromPoint

Declare Function WindowFromPoint Lib "user32.dll" (ByVal xPoint As Long, ByVal yPoint As Long) As Long

Платформа: Win 95/98, Win NT

WindowFromPoint определяет дескриптор окна,расположенного в определенной точке экрана.(text box, list box, кнопки и другие объекты-тоже окна).В успешном случае функция возвращает дескриптор окна в этой точке.Если в точке нет окна,или произошла ошибка-возвращается 0.

xPoint
Координата x точки при определении окна.
yPoint
Координата y точки при определении окна.

Пример:

' Показываем текст заголовка окно,над которым находится курсор мыши
' Это может быть окно программы или окно элемента управления.
Dim mousepos As POINTAPI  ' координаты курсора мыши
Dim wintext As String, slength As Long  ' текст заголовков окна и его длина
Dim hwnd As Long  ' дескриптор окна,находящегося в точке
Dim retval As Long  ' возвращаемое значение

' Определяем окно под курсором
retval = GetCursorPos(mousepos)  ' получаем координаты курсора
hwnd = WindowFromPoint(mousepos.x, mousepos.y)  ' определяем окно под курсором
If hwnd = 0 Then  ' ошибка или нет окна  в этой точке
  Debug.Print "Здесь ничего нет."
  End
End If

' Показываем заголовок окна
slength = GetWindowTextLength(hwnd)  ' получаем длину заголовка
wintext = Space(slength + 1)  ' создаем место в буфере для приема строки
slength = GetWindowText(hwnd, wintext, slength + 1)  ' получаем текст
wintext = Left(wintext, slength)  ' извлекаем строку из буфера
Debug.Print "Заголовок окна: "; wintext

Категория: Окна
В начало.

последнее обновление: Февраль 17, 2000


Функции Windows API:WritePrivateProfileString

Функция WritePrivateProfileString

Declare Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Long

Платформа:

Win 95/98, Win NT

WritePrivateProfileString устанавливает строковые значения в INI-файлах.Также функция может быть использована для установки числовых значений,если использовать их в строковом виде(например, "1").Если файл,в который вы пытаетесь установить значение,не существует,он будет создан.Аналогично,будут созданы разделы,ключи и значения ключей.Функция возвращает 0 при ошибке в выполнении и 1 при успешном выполнении.Обратите внимание, что поддержка INI -файлов обеспечивается в Windows для совместимости; для хранения информации используйте системный реестр.

Параметры

lpApplicationName
Значение раздела INI-файла.
lpKeyName
Значение ключа.
lpString
устанавлимое строковое значение.
lpFileName
Имя INI-файла.

Пример

' Устанавливаем значение ключа "username" в разделе [Default] файла
' C:\config.ini to "Russian Vanja".  Также устанавливаем
' ключ "информация" в этом же разделе со значением 1
' (то есть, "1").
Dim retval As Long  ' возвращаемое значение

' устанавливаем строковый параметр.
retval = WritePrivateProfileString("Default", "username", "Russian Vanja", "C:\config.ini")

' устанавливаем числовой параметр.
retval = WritePrivateProfileString("Default", "информация", "1", "C:\config.ini")

Схожие функции

GetPrivateProfileString, WriteProfileString

Категория:

Файлы INI
В начало.

последнее обновление: Январь 25, 2000


Функции Windows API:Функции по категориям

Список функций по категориям

Диалоговые окна
Доступ к параметрам системы
Мультимедиа
Графика
Кисти
Общее диалоговое окно
Курсор
Устройства
Ошибки
Файлы
Фигуры
Шрифты и тексты
Дескрипторы
Помощь
Значки
Файлы INI
Джойстик
Клавиатура
Линии и кривые
Расчеты
Сообщения
Мышь
Поддержка национальных языков
Ole
Перо
Принтер
Прямоугольники
Регионы
Реестр
Оболочка
Строки
Системная информация
Время
Классы
Процедуры
Свойства окон
Окна
Разное

  • Диалоговые окна
    • MessageBox
    • MessageBoxEx
    • MessageBoxIndirect
  • Доступ к параметрам системы
    • GetACP
    • GetOEMCP
    • GetSystemMetrics
    • SystemParametersInfo
  • Мультимедиа
    • auxGetDevCaps
    • auxGetNumDevs
    • auxGetVolume
    • auxSetVolume
    • mciSendString
    • PlaySound
    • sndPlaySound
    • waveOutGetDevCaps
    • waveOutGetNumDevs
    • waveOutGetVolume
    • waveOutSetVolume
  • Графика
    • BitBlt
    • ExtFloodFill
    • GetPixel
    • SetPixel
    • SetPixelV
    • StretchBlt
  • Кисти
    • CreateHatchBrush
    • CreateSolidBrush
    • GetBrushOrgEx
    • SetBrushOrgEx
  • Общее диалоговое окно
    • ChooseColor
    • ChooseFont
    • CommDlgExtendedError
    • GetOpenFileName
    • GetSaveFileName
    • PrintDlg
  • Курсор
    • ClipCursor
    • CreateCursor
    • DestroyCursor
    • GetClipCursor
    • GetCursor
    • GetCursorPos
    • LoadCursor
    • LoadCursorFromFile
    • SetCursor
    • SetCursorPos
    • SetSystemCursor
    • ShowCursor
  • Устройства
    • CreateDC
    • DeleteDC
    • DeleteObject
    • GetDC
    • GetStockObject
    • ReleaseDC
    • SelectObject
  • Ошибки
    • Beep
    • GetLastError
    • MessageBeep
  • Файлы
    • CopyFile
    • CreateDirectory
    • CreateDirectoryEx
    • CreateFile
    • DeleteFile
    • FindClose
    • FindFirstFile
    • FindNextFile
    • GetDiskFreeSpace
    • GetDiskFreeSpaceEx
    • GetDriveType
    • GetFileAttributes
    • GetFileInformationByHandle
    • GetFileSize
    • GetFileTime
    • GetFullPathName
    • GetLogicalDrives
    • GetLogicalDriveStrings
    • GetShortPathName
    • GetTempFileName
    • MoveFile
    • ReadFile
    • RemoveDirectory
    • SetFileAttributes
    • SetFilePointer
    • SetFileTime
    • WriteFile
  • Фигуры
    • Chord
    • Ellipse
    • FillRect
    • FrameRect
    • InvertRect
    • Pie
    • Polygon
    • PolyPolygon
    • Rectangle
    • RoundRect
  • Шрифты и тексты
    • CreateFont
    • CreateFontIndirect
    • EnumFontFamilies
    • EnumFontFamiliesEx
    • GetTextAlign
    • SetTextAlign
    • TextOut
  • Дескрипторы
    • CloseHandle
  • Помощь
    • WinHelp
  • Значки
    • DestroyIcon
    • DrawIcon
    • DrawIconEx
    • ExtractIcon
    • ExtractIconEx
  • Файлы INI
    • GetPrivateProfileInt
    • GetPrivateProfileString
    • GetProfileInt
    • GetProfileString
    • WritePrivateProfileString
    • WriteProfileString
  • Джойстик
    • joyGetDevCaps
    • joyGetNumDevs
    • joyGetPos
  • Клавиатура
    • GetAsyncKeyState
    • GetKeyboardState
    • GetKeyState
    • keybd_event
    • SendInput
    • SetKeyboardState
  • Линии и кривые
    • AngleArc
    • Arc
    • ArcTo
    • GetArcDirection
    • LineTo
    • MoveToEx
    • PolyBezier
    • PolyBezierTo
    • Polyline
    • PolylineTo
    • PolyPolyline
    • SetArcDirection
  • Расчеты
    • MulDiv
  • Память
    • CopyMemory
    • FillMemory
    • GlobalAlloc
    • GlobalFree
    • GlobalLock
    • GlobalUnlock
    • MoveMemory
    • ZeroMemory
  • Сообщения
    • SendMessage
  • Мышь
    • GetDoubleClickTime
    • mouse_event
    • ReleaseCapture
    • SetDoubleClickTime
    • SwapMouseButton
  • Поддержка национальных языков
    • GetDateFormat
    • GetThreadLocale
    • GetTimeFormat
    • SetThreadLocale
  • OLE
    • CoTaskMemFree
  • Перо
    • CreatePen
    • CreatePenIndirect
  • Принтер
    • ClosePrinter
    • EndDoc
    • EndPage
    • EnumJobs
    • EnumPrinters
    • OpenPrinter
    • StartDoc
    • StartPage
  • Прямоугольники
    • CopyRect
    • EqualRect
    • InflateRect
    • IntersectRect
    • IsRectEmpty
    • OffsetRect
    • PtInRect
    • SetRect
    • SetRectEmpty
    • SubtractRect
    • UnionRect
  • Регионы
    • CombineRgn
    • CreateEllipticRgn
    • CreateEllipticRgnIndirect
    • CreatePolygonRgn
    • CreatePolyPolygonRgn
    • CreateRectRgn
    • CreateRectRgnIndirect
    • CreateRoundRectRgn
    • EqualRgn
    • FillRgn
    • FrameRgn
    • GetPolyFillMode
    • GetRgnBox
    • InvertRgn
    • OffsetRgn
    • PtInRegion
    • RectInRegion
    • SetPolyFillMode
  • Реестр
    • RegCloseKey
    • RegCreateKeyEx
    • RegDeleteKey
    • RegDeleteValue
    • RegEnumKeyEx
    • RegEnumValue
    • RegOpenKeyEx
    • RegQueryValueEx
    • RegSetValueEx
  • Оболочка
    • SHBrowseForFolder
    • ShellExecute
    • SHEmptyRecycleBin
    • SHFileOperation
    • SHGetFileInfo
    • SHGetFolderLocation
    • SHGetFolderPath
    • SHGetPathFromIDList
    • SHGetSpecialFolderLocation
    • SHGetSpecialFolderPath
    • SHQueryRecycleBin
    • SHUpdateRecycleBinIcon
  • Строки
    • CharLower
    • CharToOem
    • CharUpper
    • IsCharLower
    • IsCharUpper
    • lstrcpy
    • lstrcpyn
    • lstrlen
    • OemToChar
  • Системная информация
    • GetComputerName
    • GetSystemDirectory
    • GetTempPath
    • GetUserName
    • GetVersionEx
    • GetVolumeInformation
    • GetWindowsDirectory
    • SetVolumeLabel
  • Время
    • CompareFileTime
    • FileTimeToLocalFileTime
    • FileTimeToSystemTime
    • GetLocalTime
    • GetSystemTime
    • GetSystemTimeAsFileTime
    • GetTimeZoneInformation
    • LocalFileTimeToFileTime
    • SetSystemTime
    • SystemTimeToFileTime
  • Классы
    • GetClassInfo
    • GetClassInfoEx
    • GetClassLong
    • GetClassName
    • GetWindowLong
    • RegisterClass
    • RegisterClassEx
    • SetClassLong
    • SetWindowLong
    • UnregisterClass
  • Процедуры
    • CallWindowProc
    • DefWindowProc
  • Свойства окон
    • EnumPropsEx
    • GetProp
    • RemoveProp
    • SetProp
  • Окна
    • BringWindowToTop
    • EnableWindow
    • EnumChildWindows
    • EnumThreadWindows
    • EnumWindows
    • FindWindow
    • FindWindowEx
    • FlashWindow
    • GetActiveWindow
    • GetDesktopWindow
    • GetForegroundWindow
    • GetParent
    • GetTopWindow
    • GetWindow
    • GetWindowRect
    • GetWindowText
    • GetWindowTextLength
    • GetWindowThreadProcessId
    • IsChild
    • IsIconic
    • IsWindow
    • IsWindowEnabled
    • IsZoomed
    • MoveWindow
    • SetActiveWindow
    • SetForegroundWindow
    • SetParent
    • SetWindowPos
    • SetWindowText
    • ShowWindow
    • WindowFromPoint
  • Разное
    • ExitWindowsEx
    • Sleep

Наверх.

В начало.

последнее обновление: Июль 03, 2000


Русский_Проект:Структуры

Список структур по алфавиту

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    • A
      • ACCESSTIMEOUT
      • ACL
      • ANIMATIONINFO
      • AUXCAPS
    • B
      • BROWSEINFO
      • BY_HANDLE_FILE_INFORMATION
    • C
      • CHOOSECOLOR_TYPE
      • CHOOSEFONT_TYPE
    • D
      • DEVMODE
      • DEVNAMES
      • DOCINFO
    • E
      • ENUMLOGFONT
      • ENUMLOGFONTEX
    • F
      • FILETIME
      • FILTERKEYS
      • FONTSIGNATURE
    • G
    • H
      • HARDWAREINPUT
      • HELPWININFO
      • HIGHCONTRAST
    • I
      • ICONMETRICS
      • INPUT_TYPE
      • ITEMIDLIST
    • J
      • JOB_INFO_1
      • JOB_INFO_2
      • JOYCAPS
      • JOYINFO
    • K
      • KEYBDINPUT
    • L
      • LOGFONT
      • LOGPEN
    • M
      • MINIMIZEDMETRICS
      • MOUSEINPUT
      • MOUSEKEYS
      • MULTIKEYHELP
    • N
      • NEWTEXTMETRIC
      • NEWTEXTMETRICEX
      • NONCLIENTMETRICS
    • O
      • OPENFILENAME
      • OSVERSIONINFO
      • OVERLAPPED
    • P
      • POINTAPI
      • PRINTDLG_TYPE
      • PRINTER_DEFAULTS NEW
      • PRINTER_INFO_1
      • PRINTER_INFO_2
      • PRINTER_INFO_4
      • PRINTER_INFO_5
    • Q
    • R
      • RECT
    • S
      • SECURITY_ATTRIBUTES
      • SECURITY_DESCRIPTOR
      • SERIALKEYS
      • SHFILEINFO NEW
      • SHITEMID
      • SHQUERYRBINFO
      • SOUNDSENTRY
      • STICKYKEYS
      • SYSTEMTIME
    • T
      • TEXTMETRIC
      • TIME_ZONE_INFORMATION
      • TOGGLEKEYS
    • U
      • ULARGE_INTEGER
    • V
    • W
      • WAVEOUTCAPS
      • WIN32_FIND_DATA
      • WNDCLASS
      • WNDCLASSEX
    • X
    • Y
    • Z

    В начало.

    последнее обновление: Май 12, 2000


Функции Windows API:Структура CHOOSECOLOR

Структура CHOOSECOLOR

Type CHOOSECOLOR
        lStructSize As Long
        hwndOwner As Long
        hInstance As Long
        rgbResult As Long
        lpCustColors As Long
        flags As Long
        lCustData As Long
        lpfnHook As Long
        lpTemplateName As String
End Type

Структура CHOOSECOLOR хранит информацию,передаваемую в или из общего диалогового окна Выбор цвета.

Состав структуры

lStructSize
Размер структуры в байтах.
hwndOwner
Дескриптор окна,открывающий диалоговое окно
hInstance
Дескриптор к шаблону диалоговому окну, чтобы использовать на месте заданного по умолчанию поля. Если это не используется, то установлено к 0.
rgbResult
Установка значения RGB -цвета по умолчанию для выбранного цвета перед запросом ChooseColor. Функция размещает значение RGB цвета , выбранный пользователем в этот компонент.
lpCustColors
указатель к блоку памяти,содержащии список 16 выбранный цветов.
Flags
Комбинация следующих флагов,определяющих вид общего диалогового окна :
CC_ANYCOLOR = &H100
Пользователю разрешено выбирать любой цвет.
CC_ENABLEHOOK = &H10
Использование функции обработчика прерываний, указанную lpfnHook для обработки сообщений выбора палитры цветов.
CC_ENABLETEMPLATE = &H20
Используйте шаблон диалогового окна, идентифицированный hInstance и lpTemplateName.
CC_ENABLETEMPLATEHANDLE = &H40
Используйте предыдущий шаблон диалогового окна, идентифицированный hInstance, игнорируя lpTemplateName.
CC_FULLOPEN = &H2
Автоматически показ определенных выбранных цветов вполовину диалогового окна.
CC_PREVENTFULLOPEN = &H4
Отключена кнопка, отображающая определенные выбраные цвета вполовину диалогового окна.
CC_RGBINIT = &H1
Установка цвета,определенную rgbResult для первоначально выбранного цвета.
CC_SHOWHELP = &H8
Показать кнопку помощи
CC_SOLIDCOLOR = &H80
Разрешение пользователю выбирать твердых цвета. Если пользователь пытается выбрать не-твердый цвет, преобразуйте это к самому близкому твердому цвету.
lCustData
Определенное приложением значение, чтобы пройти к функции обработчика прерываний, указанной lpfnHook .
lpfnHook
указатель CCHookProc hook functionдля обработки сообщений Выбора цвета.
lpTemplateName
Название шаблона диалогового окна, чтобы использовать в модуле, идентифицированном hInstance. Если в этом нет необходимости,установите в 0.

Константы

Const CC_ANYCOLOR = &H100
Const CC_ENABLEHOOK = &H10
Const CC_ENABLETEMPLATE = &H20
Const CC_ENABLETEMPLATEHANDLE = &H40
Const CC_FULLOPEN = &H2
Const CC_PREVENTFULLOPEN = &H4
Const CC_RGBINIT = &H1
Const CC_SHOWHELP = &H8
Const CC_SOLIDCOLOR = &H80

Используется в
ChooseColor

В начало.

последнее обновление: Июль 07, 2000


Функции Windows API:Структура LOGPEN

Структура LOGPEN

Type LOGPEN
  lopnStyle As Long
  lopnWidth As POINTAPI
  lopnColor As Long
End Type

Структура LOGPEN содержит информацию,идентифицирующую логическое перо. Перо, описанное структурой всегда имееет форму квадрата.

Состав структуры

lopnStyle
Один из следующих флажков, определяющих стиль пера:
PS_SOLID
Сплошное перо.
PS_DASH
Перо подчеркнуто штриховой линией. Ширина должна быть меньше или равняться единице.
PS_DOT
Перо с пунктиром. Ширина должна быть меньше или равняться единице.
PS_DASHDOT
Перо имеет чередующиеся черточки и точки.Ширина должна быть меньше или равняться единице.
PS_DASHDOTDOT
Перо имеет чередующиеся черточки, сопровождаемые двумя точками. Ширина должна быть меньше или равняться единице.
PS_NULL
Перо невидимо.
PS_INSIDEFRAME
Перо сплошное. Всякий раз, когда функция рисует картинку внутри ограничительного прямоугольника, размеры рисунка подгоняются так, чтобы рисунок, включая ширину пера, находился полностью в пределах ограничительного прямоугольника.
lopnWidth
Член структуры .x идентифицирует ширину пера. Ширина,равная нулю производит перо с одним пикселом по ширине. Член структуры .y игнорируется.
lopnColor
Значение RGB цвета пера.

Константы

Const PS_SOLID = 0
Const PS_DASH = 1
Const PS_DOT = 2
Const PS_DASHDOT = 3
Const PS_DASHDOTDOT = 4
Const PS_NULL = 5
Const PS_INSIDEFRAME = 6

Используется в
CreatePenIndirect

В начало.

последнее обновление: Июнь 14, 2000


Функции Windows API:Структура NOTIFYICONDATA

Структура NOTIFYICONDATA

Type NOTIFYICONDATA
  cbSize As Long
  hWnd As Long
  uID As Long
  uFlags As Long
  uCallbackMessage As Long
  hIcon As Long
  szTip As String * 64  ' Windows 2000: возможно String * 128

' Следующие компоненты имеют силу только в Windows 2000!
    'dwState As Long
  'dwStateMask As Long
  'szInfo As String * 256
  'uTimeoutOrVersion As Long
  'szInfoTitle As String * 64
  'dwInfoFlags As Long
End Type

Структура NOTIFYICONDATA хранит информацию, связанную со значком в system tray, описывая параметры настройки для рассматриваемого значка. Windows 2000 значительно расширяет эту структуру, добавляя множественные компоненты данных, не доступные в предыдущих версиях Windows.

Примечание для Visual Basic

Windows 2000: Официально,компонент uTimeoutOrVersion -это фактически два отдельных компонента данных, uTimeout и uVersion, которые занимают то же самое пространство в пределах структуры. Поскольку Visual Basic не поддерживает объединения подобно C++, необходимо назначить единственное имя к этому компоненту данных. Однако, использование этого псевдонима не влияет на потерю его функциональных возможностей.

Состав структуры

cbSize
Размер структуры в байтах.
hWnd
Дескриптор окна,к которому относится значок в systray.
uID
Идентификатор, который уникально идентифицирует значок. Это значение позволяет окну иметь множественные значки в systray, позволяя окно сообщать различия между ними.
uFlags
Комбинация следующих флажков, определяющих, которые из последующих членов структуры содержат полезные данные. Любые компоненты данных, не идентифицированные флажком будут игнорироваться.
NIF_ICON
Компонент данных hIcon.
NIF_MESSAGE
Компонент данных uCallbackMessage.
NIF_TIP
Компонент данных szTip .
NIF_STATE
Windows 2000: Компоненты данных dwState и dwStateMask.
NIF_INFO
Windows 2000: Использование стиля воздушного шара вместо обычной всплывающей подсказки. Компоненты данных szInfo, szTimeOut, szInfoTitle и dwInfoFlags используются.
uCallbackMessage
Определенный приложением идентификатор сообщения. Это сообщение посылается окну всякий раз, когда происходит событие,связанное со значком в systray. Прежде всего-это, когда мышь перемещается или происходитщелчок поверх значка или когда окно получает ввод с клавиатуры. Параметр wParam будет определен идентификатором значка, который генерирует сообщение. Параметр lParam "реальный" идентификатор сообщения Windows .
hIcon
Дескриптор значка.
szTip
Строка с нулевым символом в конце. Этот текст появляется, когда курсор мыши находится над значком.
dwState
Windows 2000: Комбинация следующих флажков, определяющих состояние значка. Каждый флажок - независимый переключатель.
NIS_HIDDEN
Значок скрыт.
NIS_SHAREDICON
Значок разделен.
dwStateMask
Windows 2000: Комбинация вышеупомянутых флажков, которая определяет флажки из dwState для модификаций.
szInfo
Windows 2000: Строка с нулевым символом в конце, используемая для стиля воздушного шара в подсказке.
uTimeoutOrVersion
Windows 2000: Значение времени ожидания, в миллисекундах, для показа подсказки в стиле воздушного шара.

Или, если Shell_NotifyIcon будет вызвано с флагом NIM_VERSION, то вместо этого будет определяться, использовать ли поведение Windows 2000 или Windows 95. По умолчанию, Windows 2000 будет использовать различные сообщения в некоторых случаях, чтобы связаться с окном обладания. Для совместимости, Вы должны использовать старое поведение. Это - один из следующих флажков:
0
Используйте поведение Windows 95.
NOTIFYICON_VERSION
Используйте поведение Windows 2000.
szInfoTitle
Строка с нулевым символом в конце, чтобы использовать как заголовок подсказки в стиле воздушного шара. Это будет появляться в жирном начертании текста.
dwInfoFlags
Если желательно, один из следующих флажков, определяющих значок, отображаемый слева от подсказки в стиле воздушного шара. Установите в 0, чтобы не использовать значок.
NIIF_WARNING
Значок предупреждения.
NIIF_ERROR
Значок ошибки.
NIIF_INFO
Значок информации.

Константы

Const NIF_ICON = &H2
Const NIF_MESSAGE = &H1
Const NIF_TIP = &H4
Const NIF_STATE = &H8
Const NIF_INFO = &H10
Const NIS_HIDDEN = &H1
Const NIS_SHAREDICON = &H2
Const NOTIFYICON_VERSION = &H1
Const NIIF_WARNING = &H30
Const NIIF_ERROR = &H10
Const NIIF_INFO = &H40

Используется в
Shell_NotifyIcon

В начало.

последнее обновление: Июль 08, 2000


Функции Windows API:Структура OSVERSIONINFO

Структура OSVERSIONINFO

Type OSVERSIONINFO
  dwOSVersionInfoSize As Long
  dwMajorVersion As Long
  dwMinorVersion As Long
  dwBuildNumber As Long
  dwPlatformId As Long
  szCSDVersion As String * 128
End Type

Структура OSVERSIONINFO содержит информацию о версии Windows,включая номера основной,дополнительной версий,номер сборки и т.д.

Состав структуры

dwOSVersionInfoSize
Размер структуры
dwMajorVersion
Основной номер версии.
dwMinorVersion
Дополнительный номер версии.
dwBuildNumber
Номер сборки.
dwPlatformID
Флажки для определения платформы Windows (Windows 95, Windows NT, и т.д.):
VER_PLATFORM_WIN32s = 0
Windows 3.x .
VER_PLATFORM_WIN32_WINDOWS = 1
Windows 95 или 98 .
VER_PLATFORM_WIN32_NT = 2
Windows NT.
szCSDVersion
Дополнительная информация о операционной системе.

Используется в: GetVersionEx

В начало.

последнее обновление: Июль 08, 2000


Функции Windows API:Структура POINTAPI

Структура POINTAPI

Type POINTAPI
  x As Long
  y As Long
End Type

Структура POINTAPI содержит координаты (x,y) точки.

Примечание для Visual Basic

Официально, эта структура называется POINT. Но так как в Visual Basic уже имеется зарезервированное слово Point,то во избежания конфликта используется имя POINTAPI.

Состав структуры

x
Координата точки x.
y
Координата точки y.

Используется в
CreatePolygonRgn, CreatePolyPolygonRgn, GetBrushOrgEx, GetCursorPos, LOGPEN, MoveToEx, PolyBezier, PolyBezierTo, Polygon, Polyline, PolyPolygon, PolylineTo, PolyPolyline, SetBrushOrgEx, WinHelp

В начало.

последнее обновление: Июль 08, 2000


Функции Windows API:Структура RECT

Структура RECT

Type Rect
  left As Long
  top As Long
  right As Long
  bottom As Long
End Type

Структура RECT определяет прямоугольник, сохраняя координаты его левых верхних и нижних правых углов.

Состав структуры

left
Координата x левого верхнего угла прямоугольника.
top
Координата y левого верхнего угла прямоугольника.
right
Координата x нижнего правого угла прямоугольника.
bottom
Координата y нижнего правого угла прямоугольника.

Используется в
ClipCursor, CopyRect, CreateEllipticRgnIndirect, CreateRectRgnIndirect, EqualRect, FillRect, FrameRect, GetClipCursor, GetRgnBox, GetWindowRect, InflateRect, IntersectRect, InvertRect, IsRectEmpty, OffsetRect, PtInRect, RectInRegion, SetRect, SetRectEmpty, SubtractRect, SystemParametersInfo, UnionRect

В начало.

последнее обновление: Апрель 26, 2000


Функции Windows API:Структура SECURITY_ATTRIBUTES

Структура SECURITY_ATTRIBUTES

Type SECURITY_ATTRIBUTES
        nLength As Long
        lpSecurityDescriptor As Long
        bInheritHandle As Long
End Type
Описание и применение

Структура SECURITY_ATTRIBUTES определяет уровень и тип защиты объекта.Защита,как правило,используется в Windows NT/2000,реже в Windows 95/98.

Состав структуры

nLength
Размер структуры в байтах.
lpSecurityDescriptor
Указатель на дескриптор для объекта. Для использования описателя по умолчанию-установите его равным 0.
bInheritHandle
Определяет, должен ли дескриптор объекта быть унаследован новыми процессами или программами.

Используется в
CreateDirectory, CreateDirectoryEx, CreateFile, RegCreateKeyEx

В начало.

последнее обновление:Июль 08, 2000


Функции Windows API:Структура SYSTEMTIME

Структура SYSTEMTIME

Type SYSTEMTIME
  wYear As Integer
  wMonth As Integer
  wDayOfWeek As Integer
  wDay As Integer
  wHour As Integer
  wMinute As Integer
  wSecond As Integer
  wMilliseconds As Integer
End Type

Структура SYSTEMTIME содержит дату и время в удобном формате.

Состав структуры

wYear
Год(четырехзначное число).
wMonth
Номер месяца (1 = Январь, 2 = Февраль, и т.д.).
wDayOfWeek
День недели (0 = Воскресенье, 1 = Понедельник и т.д.).
wDay
День месяца
wHour
Час, (от 0 до 12).
wMinute
Минута.
wSecond
Секунда.
wMilliseconds
Миллисекунда.

Используется в:
FileTimeToSystemTime, GetLocalTime, GetSystemTime, JOB_INFO_1, JOB_INFO_2, SetSystemTime, SystemTimeToFileTime, TIME_ZONE_INFORMATION

В начало.

последнее обновление: Июль 08, 2000


Функции Windows API:Сообщения

Сообщения-это то,чем дышит Windows.В Visual Basic большинство событий порождается Windows-сообщениями.

A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

  • C
    • CB_GETCOUNT
    • CB_GETCURSEL
    • CB_GETDROPPEDSTATE
    • CB_GETLBTEXT
    • CB_GETLBTEXTLEN
    • CB_SETCURSEL
    • CB_SHOWDROPDOWN
  • W
    • WM_GETTEXT
    • WM_GETTEXTLENGTH
    • WM_HELP
    • WM_LBUTTONDBLCLK
    • WM_LBUTTONDOWN
    • WM_LBUTTONUP
    • WM_MBUTTONDBLCLK
    • WM_MBUTTONDOWN
    • WM_MBUTTONUP
    • WM_MOUSEMOVE
    • WM_RBUTTONDBLCLK
    • WM_RBUTTONDOWN
    • WM_RBUTTONUP
    • WM_SETTEXT

последнее обновление: Июль 07, 2000


Функции Windows API:Сообщение WM_LBUTTONDOWN

Сообщение WM_LBUTTONDOWN

Платформа

  • Windows 95/Windows 98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Требуется Windows CE 1.0 или выше.

Сообщение WM_LBUTTONDOWN сообщает окну, что левая кнопка мыши была нажата, когда курсор находится внутри клиентской области окна. Информация, посланная с сообщением идентифицирует позицию курсора относительно окна, а также состояние клавиш и кнопок мыши.

Возвращаемое значение

WM_LBUTTONDOWNдолжен всегда возвращать 0.

Примечание для Visual Basic

Нет необходимости создавать специальный дескриптор для сообщения WM_LBUTTONDOWN в вашей программе. Событие MouseDown выполняет ту же работу,что и WM_LBUTTONDOWN и проще в использовании.Но можно использовать для связи с другими программами.

Параметры

wParam
Комбинация следующих флагов определяют нажатия клавиш:
MK_CONTROL
Нажата клавиша Ctrl.
MK_LBUTTON
Нажата левая кнопка мыши.
MK_MBUTTON
Нажата средняя кнопка мыши.
MK_RBUTTON
Нажата правая кнопка мыши.
MK_SHIFT
Нажата клавиша Shift.
MK_XBUTTON1
Windows 2000: Нажата первая кнопка X.
MK_XBUTTON2
Windows 2000: Нажата вторая кнопка X.
lParam
Координаты (x,y) курсора мыши относительно окна.

Константы

Const WM_LBUTTONDOWN = &H201
Const MK_CONTROL = &H8
Const MK_LBUTTON = &H1
Const MK_MBUTTON = &H10
Const MK_RBUTTON = &H2
Const MK_SHIFT = &H4
Const MK_XBUTTON1 = &H20
Const MK_XBUTTON2 = &H40

Пример

'Создайте на форме две кнопки Command1 и Command2
'вставьте  в Command2 строчку MsgBox "Нажато!"
'Вставьте код для кнопки Command1
'Посылаем сообщение о нажатии кнопки Command2
SendMessage Command2.hwnd, WM_LBUTTONDOWN, 0, 0
SendMessage Command2.hwnd, WM_LBUTTONUP, 0, 0

Схожие сообщения
WM_LBUTTONDBLCLK, WM_LBUTTONUP, WM_MBUTTONDOWN, WM_RBUTTONDOWN

Категория
Сообщения

В начало.

последнее обновление:Май 23, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:Коды виртуальных клавиш

Коды виртуальных клавиш

Включают в себя коды виртуальных клавиш клавиатуры, а также "виртуальные" элементы типа трех кнопок мыши. Виртуальные клавиши также включают в себя такие "клавиши", которых обычно не существуют вообще! Код виртуальной клавиши не изменяется, когда нажаты клавиши- модификаторы (Ctrl, Alt, Shift, и т.д.) Например,клавиша 1 имеет тот же самый код виртуальной клавиши-нажата ли 1 или ! Однако, цифры на цифровой клавиатуре имеют два различных кода виртуальной клавиши: один, когда Num Lock включен, и другой когда Num Lock выключен. Обратите внимание, что коды виртуальной клавиши 0-9 и A-Z равняются их кодам ASCII.

Примечание: Фактические значения некоторых из кодов клавиш могут различаться на клавиатуре, предназначенной для различных языков. Особенно, VK_OEM_*, которым обозначают клавишу пунктуации. Значения, перечисленные ниже - для Американской клавиатуры.

Виртуальные коды клавиш

VK_LBUTTON = &H1
Левая кнопка мыши
VK_RBUTTON = &H2
Правая кнопка мыши
VK_CANCEL = &H3
Виртуальная клавиша Отмены, используемая для обработки комбинации клавиш Control-Break
VK_MBUTTON = &H4
Средняя кнопка мыши
VK_BACK = &H8
Backspace
VK_TAB = &H9
Tab
VK_CLEAR = &HC
5 (на цифровой клавиатуре без Num Lock)
VK_RETURN = &HD
Enter
VK_SHIFT = &H10
Shift (любая)
VK_CONTROL = &H11
Ctrl (любая)
VK_MENU = &H12
Alt (любая)
VK_PAUSE = &H13
Pause
VK_CAPITAL = &H14
Caps Lock
VK_ESCAPE = &H1B
Esc
VK_SPACE = &H20
Spacebar
VK_PRIOR = &H21
Page Up
VK_NEXT = &H22
Page Down
VK_END = &H23
End
VK_HOME = &H24
Home
VK_LEFT = &H25
Стрелка влево
VK_UP = &H26
Стрелка вверх
VK_RIGHT = &H27
Стрелка вправо
VK_DOWN = &H28
Стрелка вниз
VK_SELECT = &H29
Select
VK_PRINT = &H2A
Print (используемый только Nokia-клавиатурой)
VK_EXECUTE = &H2B
Execute (не используется)
VK_SNAPSHOT = &H2C
Print Screen
VK_INSERT = &H2D
Insert
VK_DELETE = &H2E
Delete
VK_HELP = &H2F
Help
VK_0 = &H30
0
VK_1 = &H31
1
VK_2 = &H32
2
VK_3 = &H33
3
VK_4 = &H34
4
VK_5 = &H35
5
VK_6 = &H36
6
VK_7 = &H37
7
VK_8 = &H38
8
VK_9 = &H39
9
VK_A = &H41
A
VK_B = &H42
B
VK_C = &H43
C
VK_D = &H44
D
VK_E = &H45
E
VK_F = &H46
F
VK_G = &H47
G
VK_H = &H48
H
VK_I = &H49
I
VK_J = &H4A
J
VK_K = &H4B
K
VK_L = &H4C
L
VK_M = &H4D
M
VK_N = &H4E
N
VK_O = &H4E
O
VK_P = &H50
P
VK_Q = &H51
Q
VK_R = &H52
R
VK_S = &H53
S
VK_T = &H54
T
VK_U = &H55
U
VK_V = &H56
V
VK_W = &H57
W
VK_X = &H58
X
VK_Y = &H59
Y
VK_Z = &H5A
Z
VK_STARTKEY = &H5B
Start Menu
VK_CONTEXTKEY = &H5D
Context Menu
VK_NUMPAD0 = &H60
0 (с Num Lock)
VK_NUMPAD1 = &H61
1 (с Num Lock)
VK_NUMPAD2 = &H62
2 (с Num Lock)
VK_NUMPAD3 = &H63
3 (с with Num Lock)
VK_NUMPAD4 = &H64
4 (с with Num Lock)
VK_NUMPAD5 = &H65
5 (с Num Lock)
VK_NUMPAD6 = &H66
6 (с Num Lock)
VK_NUMPAD7 = &H67
7 (с Num Lock)
VK_NUMPAD8 = &H68
8 (с Num Lock)
VK_NUMPAD9 = &H69
9 (с with Num Lock)
VK_MULTIPLY = &H6A
* (цифровая клавиатура)
VK_ADD = &H6B
+ (цифровая клавиатура)
VK_SEPARATER = &H6C
Separator (never generated by the keyboard)
VK_DECIMAL = &H6E
. (с Num Lock)
VK_DIVIDE = &H6F
/ (цифровая клавиатура)
VK_F1 = &H70
F1
VK_F2 = &H71
F2
VK_F3 = &H72
F3
VK_F4 = &H73
F4
VK_F5 = &H74
F5
VK_F6 = &H75
F6
VK_F7 = &H76
F7
VK_F8 = &H77
F8
VK_F9 = &H78
F9
VK_F10 = &H79
F10
VK_F11 = &H7A
F11
VK_F12 = &H7B
F12
VK_F13 = &H7C
F13
VK_F14 = &H7D
F14
VK_F15 = &H7E
F15
VK_F16 = &H7F
F16
VK_F17 = &H80
F17
VK_F18 = &H81
F18
VK_F19 = &H82
F19
VK_F20 = &H83
F20
VK_F21 = &H84
F21
VK_F22 = &H85
F22
VK_F23 = &H86
F23
VK_F24 = &H87
F24
VK_NUMLOCK = &H90
Num Lock
VK_OEM_SCROLL = &H91
Scroll Lock
VK_OEM_1 = &HBA
;
VK_OEM_PLUS = &HBB
=
VK_OEM_COMMA = &HBC
,
VK_OEM_MINUS = &HBD
-
VK_OEM_PERIOD = &HBE
.
VK_OEM_2 = &HBF
/
VK_OEM_3 = &HC0
`
VK_OEM_4 = &HDB
[
VK_OEM_5 = &HDC
\
VK_OEM_6 = &HDD
]
VK_OEM_7 = &HDE
'
VK_OEM_8 = &HDF
(unknown)
VK_ICO_F17 = &HE0
F17 на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_ICO_F18 = &HE1
F18 на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_OEM_102 = &HE2
< or | on IBM-compatible 102 enhanced non-U.S. keyboard
VK_ICO_HELP = &HE3
Help на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_ICO_00 = &HE4
00 на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_ICO_CLEAR = &HE6
Clear на Olivetti расширенной клавиатуре (внутреннее использование только)
VK_OEM_RESET = &HE9
Reset (Nokia keyboards only)
VK_OEM_JUMP = &HEA
Jump (Nokia keyboards only)
VK_OEM_PA1 = &HEB
PA1 (Nokia keyboards only)
VK_OEM_PA2 = &HEC
PA2 (Nokia keyboards only)
VK_OEM_PA3 = &HED
PA3 (Nokia keyboards only)
VK_OEM_WSCTRL = &HEE
WSCTRL (Nokia keyboards only)
VK_OEM_CUSEL = &HEF
CUSEL (Nokia keyboards only)
VK_OEM_ATTN = &HF0
ATTN (Nokia keyboards only)
VK_OEM_FINNISH = &HF1
FINNISH (Nokia keyboards only)
VK_OEM_COPY = &HF2
COPY (Nokia keyboards only)
VK_OEM_AUTO = &HF3
AUTO (Nokia keyboards only)
VK_OEM_ENLW = &HF4
ENLW (Nokia keyboards only)
VK_OEM_BACKTAB = &HF5
BACKTAB (Nokia keyboards only)
VK_ATTN = &HF6
ATTN
VK_CRSEL = &HF7
CRSEL
VK_EXSEL = &HF8
EXSEL
VK_EREOF = &HF9
EREOF
VK_PLAY = &HFA
PLAY
VK_ZOOM = &HFB
ZOOM
VK_NONAME = &HFC
NONAME
VK_PA1 = &HFD
PA1
VK_OEM_CLEAR = &HFE
CLEAR

Используется в
GetAsyncKeyState, GetKeyboardState, GetKeyState, keybd_event, KEYBDINPUT, SetKeyboardState

В начало.

последнее обновление: Июнь 29, 2000


Функции Windows API: Коды ошибок

Коды ошибок

Коды ошибок -это значения,определяющие различные коды ошибок функций API. Обычно используется функцией GetLastError . Ниже прилагается список кодов ошибок.

Коды ошибок API
Код ошибки | Определение
0 | Операция выполнена успешно.
1 | Неверная функция
2 | Системе не удается найти указанный файл
3 | Системе не удается найти указанный путь
4 | Системе не удается открыть файл.
5 | Нет доступа.
6 | Неверный дескриптор.
7 | Повреждены управляющие блоки памяти.
8 | Недостаточно памяти для обработки команды.
9 | Неверный адрес управляющего блока памяти.
10 | Ошибка в среде.
11 | Была сделана попытка загрузить программу, имеющую неверный формат.
12 | Код доступа неверен.
13 | Ошибка в данных.
14 | Недостаточно памяти для завершения операции.
15 | Системе не удается найти указанный диск.
16 | Не удается удалить папку.
17 | Системе не удается переместить файл на другой диск.
18 | Больше файлов не осталось.
19 | Носитель защищен от записи.
20 | Системе не удается найти указанное устройство.
21 | Устройство не готово.
22 | Устройство не опознает команду.
23 | Ошибка в данных (CRC)
24 | Длина выданной программой команды слишком велика.
25 | Не удается найти заданную область или дорожку на диске.
26 | Нет доступа к диску или дискете.
27 | Не удается найти заданный сектор на диске.
28 | Нет бумаги в принтере.
29 | Системе не удается произвести запись на устройство.
30 | Системе не удается произвести чтение с устройства.
31 | Присоединенное к системе устройство не работает.
32 | Процесс не может получить доступ к файлу, так как этот файл занят другим процессом.
33 | Процесс не может получить доступ к файлу, так как часть этого файла заблокирована другим процессом.
34 | В устройство вставлен неверный диск.
36 | Слишком много файлов открыто для совместного доступа.
38 | Достигнут конец файла.
39 | Диск заполнен до конца.
50 | Сетевой запрос не поддерживается.
51 | Удаленный компьютер недоступен.
52 | В сети существуют совпадающие имена.
53 | Не найден сетевой путь.
54 | Сеть занята.
55 | Сетевой ресурс или устройство более недоступно.
56 | Достигнут предел числа команд NetBIOS.
57 | Аппаратная ошибка сетевой платы.
58 | Указанный сервер не может выполнить требуемую операцию.
59 | Неожиданная ошибка в сети.
60 | Несовместимый удаленный адаптер.
61 | Очередь печати переполнена.
62 | На сервере отсутствует место для записи файла, выводимого на печать.
63 | Ваш файл, находившийся в очереди вывода на печать, был удален.
64 | Указанное сетевое имя более недоступно.
65 | Отсутствует доступ к сети.
66 | Неверно указан тип сетевого ресурса.
67 | Не найдено сетевое имя.
68 | Превышен предел по числу имен для локальной сетевой платы компьютера.
69 | Превышен предел по числу сеансов NetBIOS.
70 | Сервер сети был остановлен или находится в процессе запуска.
71 | Дополнительные подключения к этому удаленному компьютеру в настоящее время невозможны, поскольку число подключений к компьютеру достигло предела.
72 | Работа указанного принтера или дискового накопителя была остановлена.
80 | Файл существует.
82 | Не удается создать файл или папку.
83 | Ошибка при обращении к прерыванию INT 24
84 | Недостаточно памяти для обработки запроса.
85 | Имя локального устройства уже используется.
86 | Сетевой пароль указан неверно.
87 | Параметр задан неверно.
88 | Ошибка записи в сети.
89 | В настоящее время системе не удается запустить другой процесс.
100 | Не удается создать еще один системный семафор.
101 | Семафор эксклюзивного доступа занят другим процессом.
102 | Семафор установлен и не может быть закрыт.
103 | Семафор не может быть установлен повторно.
104 | Запросы к семафорам эксклюзивного доступа на время выполнения прерываний не допускаются.
105 | Этот семафор более не принадлежит использовавшему его процессу.
106 | Вставьте диск в устройство
107 | Программа была остановлена, так как нужный диск вставлен не был.
108 | Диск занят или заблокирован другим процессом.
109 | Канал был закрыт.
110 | Системе не удается открыть указанное устройство или файл.
111 | Указано слишком длинное имя файла.
112 | Недостаточно места на диске
113 | Исчерпаны внутренние идентификаторы файлов.
114 | Результирующий внутренний идентификатор файла неправилен.
117 | Вызов IOCTL приложением произведен неверно.
118 | Параметр проверки записи данных имеет неверное значение.
119 | Система не может обработать полученную команду.
120 | Эта функция допустима только в режиме Win32.
121 | Истек интервал ожидания семафора.
122 | Область данных, переданная по системному вызову, слишком мала.
123 | Синтаксическая ошибка в имени файла, имени папки или метке тома.
124 | Неверный уровень системного вызова.
125 | У диска отсутствует метка тома.
126 | Не найден указанный модуль.
127 | Не найдена указанная процедура.
128 | Дочерние процессы, окончания которых требуется ожидать, отсутствуют.
129 | Приложение нельзя запустить в режиме Win32.
130 | Попытка использовать дескриптор файла для открытия раздела диска и выполнения операции, отличающейся от ввода/вывода нижнего уровня.
131 | Попытка поместить указатель на файл перед началом файла.
132 | Указатель на файл не может быть установлен на заданное устройство или файл.
133 | Команды JOIN и SUBST не могут быть использованы для дисков, содержащих уже объединенные диски.
134 | Попытка использовать команду JOIN или SUBST для диска, уже включенного в набор объединенных дисков.
135 | Попытка использовать команду JOIN или SUBST для диска, который уже был отображен.
136 | Попытка снять признак объединения с диска, для которого команда JOIN не выполнялась.
137 | Попытка снять признак отображения с диска, для которого команда SUBST не выполнялась.
138 | Попытка объединить диск с папкой на объединенном диске.
139 | Попытка отобразить диск на папку, находящуюся на отображенном диске.
140 | Попытка объединить диск с папкой на отображенном диске.
141 | Попытка отобразить диск на папку, находящуюся на объединенном диске.
142 | В настоящее время выполнить команду JOIN или SUBST невозможно.
143 | Невозможно объединить (или отобразить) диск с папкой (или на папку) этого же диска.
144 | Эта папка не является подпапкой корневой папки.
145 | Папка не пуста.
146 | Указанный путь используется для отображенного диска.
147 | Недостаточно ресурсов для обработки команды.
148 | Указанный путь в настоящее время использовать нельзя.
149 | Попытка объединить или отобразить диск, папка на котором уже используется для отображения.
150 | Сведения о трассировке в файле CONFIG.SYS не найдены, либо трассировка запрещена.
151 | Число семафоров для DosMuxSemWait задано неверно.
152 | Не выполнен вызов DosMuxSemWait. Установлено слишком много семафоров.
153 | Некорректный вызов DosMuxSemWait.
154 | Длина метки тома превосходит предел, установленный для файловой системы.
155 | Не удается создать еще один поток команд.
156 | Принимающий процесс отклонил сигнал.
157 | Сегмент уже освобожден и не может быть заблокирован.
158 | Блокировка с сегмента уже снята.
159 | Адрес идентификатора потока команд задан неверно
160 | DosExecPgm передан неверный аргумент.
161 | Путь указан неверно
162 | Сигнал уже находится в состоянии обработки.
164 | Создание дополнительных потоков команд невозможно.
167 | Не удается снять блокировку с области файла.
170 | Требуемый ресурс занят.
173 | Запрос на блокировку соответствует определенной области.
174 | Файловая система не поддерживает указанные изменения типа блокировки.
180 | Системой обнаружен неверный номер сегмента.
182 | Операционная система не может запустить
183 | Невозможно создать файл, так как он уже существует.
186 | Передан неверный флаг
187 | Не найдено указанное имя системного семафора.
188 | Операционная система не может запустить
189 | Операционная система не может запустить
190 | Операционная система не может запустить
191 | Не удается запустить в режиме Win32.
192 | Операционная система не может запустить
193 | Не является приложением Win32.
194 | Операционная система не может запустить
195 | Операционная система не может запустить
196 | Операционная система не может запустить
197 | Конфигурация операционной системы не рассчитана на запуск этого приложения.
198 | Операционная система не может запустить
199 | Операционная система не может запустить
200 | Сегмент кода не может превышать 64 КБ.
201 | Операционная система не может запустить
202 | Операционная система не может запустить
203 | Системе не удается найти указанный параметр среды.
205 | Ни один из процессов в дереве команды не имеет обработчика сигналов.
206 | Имя файла или его расширение имеет слишком большую длину.
207 | Стек занят
208 | Подстановочные знаки * и/или ? заданы неверно или образуют неверный шаблон имени.
209 | Отправляемый сигнал неверен.
210 | Не удается установить обработчик сигналов.
212 | Сегмент заблокирован и не может быть перемещен.
214 | К этой программе или модулю присоединено слишком много динамически подключаемых модулей.
215 | Вызовы LoadModule не могут быть вложены.
230 | Неправильное состояние канала.
231 | Все копии канала заняты.
232 | Идет закрытие канала.
233 | С обоих концов канала отсутствуют процессы.
234 | Имеются дополнительные данные.
240 | Сеанс был прекращен
254 | Имя дополнительного атрибута было задано неверно.
255 | Дополнительные атрибуты несовместимы между собой.
259 | Дополнительные данные отсутствуют.
266 | Не удается использовать интерфейс (API) Copy.
267 | Неверно задано имя папки.
275 | Дополнительные атрибуты не уместились в буфере.
276 | Файл дополнительных атрибутов поврежден.
277 | Файл дополнительных атрибутов переполнен
278 | Неверно указан дескриптор дополнительного атрибута.
282 | Установленная файловая система не поддерживает дополнительные атрибуты.
288 | Попытка освободить не принадлежащий процессу объект синхронизации.
298 | Слишком много попыток занесения события для семафора.
317 | Не удается найти сообщение в файле сообщений.
487 | Попытка обращения к неверному адресу.
534 | Длина результата арифметической операции превысила 32 разряда.
535 | С другой стороны канала присутствует процесс.
536 | Идет ожидание открытия процессом другой стороны канала.
994 | Нет доступа к дополнительным атрибутам.
995 | Операция ввода/вывода была прервана из-за завершения потока команд или по запросу приложения.
996 | Наложенное событие ввода/вывода не находится в сигнальном состоянии.
997 | Протекает наложенное событие ввода/вывода.
998 | Неверная попытка доступа к адресу памяти.
999 | Ошибка при выполнении операции со страницей.
1001 | Слишком глубокий уровень рекурсии. Стек переполнен.
1002 | Окно не может взаимодействовать с отправленным сообщением.
1003 | Не удается завершить выполнение функции.
1004 | Флаги установлены неверно.
1005 | Не удается опознать присутствующую на томе файловую систему.
1006 | Том для открытого файла был изменен извне,так что работа с файлом невозможна.
1007 | Cannot Perform Operation in Full-Screen Mode
1008 | Попытка ссылки на несуществующий элемент.
1009 | База данных реестра повреждена.
1010 | Параметр реестра имеет неверное значение.
1011 | Не удается открыть параметр реестра.
1012 | Не удается прочитать параметр реестра.
1013 | Не удается записать параметр реестра.
1014 | Один из файлов в базе данных реестра должен был быть восстановлен с помощью протокола или резервной копии. Восстановление прошло успешно.
1015 | Реестр поврежден.
1016 | Неустранимый сбой операции ввода/вывода, запущенной из реестра.
1017 | При попытке загрузить или восстановить файл реестра выяснилось, что этот файл имеет неверный формат.
1018 | Попытка произвести недопустимую операцию над параметром реестра, отмеченным для удаления.
1019 | Не удалось выделить требуемое место в протоколе реестра.
1020 | Нельзя создать символическую связь для параметра реестра, который уже содержит подпараметры или значения.
1021 | Нельзя создать статический подпараметр для временного родительского параметра.
1022 | Запрос на оповещение об изменениях завершается, однако данные не были возвращены в буфер вызывающей процедуры. Теперь эта процедура нуждается в переборе файлов для поиска изменений.
1051 | Команда остановки была отправлена службе, от которой зависят другие службы.
1052 | Команда неуместна для данной службы
1053 | Служба не ответила на запрос своевременно.
1054 | Не удалось создать поток команд для службы
1055 | База данных службы заблокирована.
1056 | Одна копия службы уже запущена.
1057 | Имя учетной записи задано неверно или не существует.
1058 | Указанная служба отключена или не может быть запущена.
1059 | Была сделана попытка установить циклическую зависимость между службами.
1060 | Указанная служба не установлена
1061 | Служба в настоящее время не может принимать команды.
1062 | Служба не запущена.
1063 | Процесс службы не может установить связь с контроллером службы.
1064 | Ошибка службы при обработке команды.
1065 | Указанная база данных не существует.
1066 | Служба возвратила код ошибки.
1067 | Процесс был неожиданно завершен
1068 | Не удалось запустить дочернюю службу.
1069 | Служба не запущена из-за сбоя при входе.
1070 | Сразу после запуска служба "зависла".
1071 | Блокировка базы данных указанной службы наложена неверно.
1072 | Указанная служба была отмечена для удаления
1073 | Указанная служба уже существует.
1074 | Система в настоящий момент работает с использованием последней корректной конфигурации.
1075 | Дочерняя служба не существует или была отмечена для удаления.
1076 | Текущая конфигурация уже была задействована в качестве источника последнего корректного набора параметров.
1077 | С момента последней загрузки попытки запустить службу не делались.
1078 | Имя уже задействовано в качестве имени службы.
1100 | Достигнут физический конец ленты.
1101 | Достигнута метка файла.
1102 | Обнаружено начало раздела ленты.
1103 | Достигнут конец набора файлов.
1104 | Больше данных на ленте нет.
1105 | Не удается создать на ленте разделы.
1106 | Неправильный текущий размер блока при обращении к новой магнитной ленте из многотомного раздела.
1107 | При загрузке магнитной ленты не найдены сведения о разделах.
1108 | Не удается заблокировать механизм извлечения носителя.
1109 | Не удается извлечь носитель.
1110 | Носитель в устройстве мог быть заменен.
1111 | Шина ввода/вывода была инициализирована заново.
1112 | Отсутствует носитель в устройстве.
1113 | Символ Unicode не имеет отображения в конечной многобайтовой кодировке.
1114 | Произошел сбой в программе инициализации библиотеки динамической компоновки (DLL).
1115 | Идет завершение работы системы.
1116 | Прервать завершение работы системы невозможно, так как оно не было инициировано.
1117 | Запрос не был выполнен из-за ошибки ввода/вывода на устройстве.
1118 | Последовательные устройства не инициализированы. Драйвер будет выгружен.
1119 | Не удается открыть устройство, использующее общий с другими устройствами запрос на прерывание (IRQ). Как минимум одно устройство, использующее этот же запрос IRQ, уже было открыто.
1120 | Последовательная операция ввода/вывода была завершена в результате следующей операции записи в последовательный порт.
1121 | Последовательная операция ввода/вывода была завершена по истечении периода ожидания.
1122 | На гибком диске не обнаружена адресная метка идентификатора.
1123 | Обнаружено несоответствие между полем идентификатора сектора гибкого диска и адресом дорожки контроллера.
1124 | Ошибка, возвращенная контроллером гибких дисков,не опознается драйвером.
1125 | Контроллером гибких дисков возвращены некорректные значения регистров.
1126 | Зафиксирован многократный сбой операции проверки при обращении к жесткому диску.
1127 | Зафиксирован многократный сбой операции при обращении к жесткому диску.
1128 | При обращении к жесткому диску потребовался сброс контроллера,однако даже его произвести не удалось.
1129 | Достигнут физический конец ленты.
1130 | Недостаточно памяти сервера для обработки команды.
1131 | Обнаружена вероятность возникновения взаимоблокировки.
1132 | Базовый адрес или смещение имеют неверное выравнивание.

Используется в: GetLastError

В начало.

последнее обновление: Февраль 17, 2000


Функции Windows API:Автор руководства

 Данное руководство написано А.Климовым.

Примеры,коды,советы и многое другое вы можете найти на сайте Русский_Проект по адресу:http://rusproject.newmail.ru

E-mail: wwwind@aport.ru

В начало.

последнее обновление: Июль 08, 2000
© 1999-2000 А.Климов.
Русский_Проект


Функции Windows API:GetTickCount

Функция GetTickCount

Declare Function GetTickCount Lib "kernel32.dll" () As Long

Платформа

  • Windows 95: Поддерживается.
  • Windows 98: Поддерживается.
  • Windows NT: Требуется Windows NT 3.1 или выше.
  • Windows 2000: Поддерживается.
  • Windows CE: Неизвестно.

GetTickCount возвращает время,истекшее с последней загрузки Windows в миллисекундах.

Пример

' Определяем,сколько времени прошло с последней загрузки Window
Dim retval as Long  'возвращаемое значение
'Полученное значение преобразуем в минуты
    retval = GetTickCount
    MsgBox Str$(retval / 60000) + " минут."

Категория
Время

В начало

последнее обновление: Март 24, 2000
© 1999-2000 А.Климов.
Русский_Проект